闲来无聊玩玩CTF。
1、先玩一个爆破题。
打开之后出现如下网页:习惯性的使用BURP抓包查看,有一段话是在网页中不太容易看到的。
既然是某个数字,那就尝试爆破吧。添加payload,因为是100-200,所以可以尝试100-199(赌的就是他的值不是200,主打的就是运气,或者也可以生成一个100-200字典)。
在迭代器中选择三个就可以,第一个给他1的值,然后后面两个位置都从列表中添加选择0-9即可。
这不就出来了,good good。
2、SSTI模版注入
进去是下面这个界面:
发现这里是可以进行参数传递的,尝试了一个xss,可以成功。
使用burp抓包可以看到参数传递过程。
因为题目提示是SSTI,所以尝试SSTI注入。
在某博客找到如下poc,尝试测试。
https://www.cnblogs.com/TT0TT/p/16557307.html
使用上面poc可以执行命令,那么就可以反弹shell或者来翻文件寻找flag了。
查看目录,寻找flag。
拿到flag就可以提交了,另外还可以使用工具来进行测试,脚本命令如下。
python3 sstimap.py -u http://c9f3b1ad.clsadp.com/diy/ -d tpl=1 --os-shell,使用这个命令则可以自动测试,因为是post传递参数,所以用-d来进行指定参数。
把流量代理到BP查看POC。
然后进行解码。
可以看到他内部函数先调用了os库,把whoami通过base64编码发送给popen函数,然后在通过popen函数执行把结果返回给d变量,在回显出来。
他是先定义了d变量,当这段代码执行之后d就会变成执行后代码的返回值,如whoami的话就是d就等于root。然后他会使用循环函数查看当前python进程的异常类中是否存在catch_warnings类,如果存在他会继续使用循环查询eval函数,如果也存在eval函数,那么他会运行该代码并输出运行后的值。
高深的代码看的让人发狂(我是废物)。
需要工具的可以回复SSTI模板注入获取下载链接。
团队承接以下业务,详情咨询扫描二维码添加好友。
扫描二维码添加好友,一起交流学习。