打开题目
扫描目录得到
关于 .swp 文件
.swp 文件一般是 vim 编辑器在编辑文件时产生的,当用 vim 编辑器编辑文件时就会产生,正常退出时 .swp 文件被删除,但是如果直接叉掉(非正常退出),那么 .swp 文件就会被保留
在命令行下使用以下命令,可以从指定的交换文件进行恢复:
vim -r file.txt.swo
我们把文件拖去kali
用 命令 vim -r
用命令
vim -r index.php.swp
代码如下
<?php
error_reporting(0);
$password = "Give_Me_Your_Flag";
echo "<p>can can need Vim </p>";
if ($_POST['password'] === base64_encode($password)) {
echo "<p>Oh You got my password!</p>";
eval(system($_POST['cmd']));
}
?>
只需要 POST 传参 password 等于字符串 “Give_Me_Your_Flag” 的base64 加密后的值即可。
然后就能得到一串输出且能执行系统命令
得到
R2l2ZV9NZV9Zb3VyX0ZsYWc=
用hackbar传参一下
得到flag
参考文章:
[LitCTF 2023]Vim yyds-CSDN博客
知识点:
关于 .swp 文件
.swp 文件一般是 vim 编辑器在编辑文件时产生的,当用 vim 编辑器编辑文件时就会产生,正常退出时 .swp 文件被删除,但是如果直接叉掉(非正常退出),那么 .swp 文件就会被保留
关于使用 vim 编辑器恢复 .swp 交换文件
参考:VIM学习笔记 交换文件(swap) - 知乎