BUUCTF ping ping ping
打开场景的时候我是一脸懵逼的那就看看源码吧还是一脸懵逼。
可以继续懵逼。
那既然人家人家都让我们ping ping ping了那就ping一下吧(使用GET方法传递的ip地址)
返回了一个我们平时用cmd也可以实现的作用,那么就猜想一下,我们尝试去直接凭借一下命令让他把flag给我们打印出来(domg,domg)
抱着满心的欢喜然后给我返回了一个这个:
看来这样是不能成功了(大概率是他过滤了一些东西·)
所以我们不能过执行命令,那就试一下别的命令了:
hhhh,ls是可以的:
所以我们就可以想了他应该是通过index的脚本来进行执行这个页面的所以我们只要知道了index过滤了一些啥,我们就可以一步到位了:
从他前面骂我们的话来看他是应该把空格符过滤了所以就试试‘$IFS’
所以试一下
阿这就是非常的不讲武德了:
应该是把我们的特殊符号也给我们禁用了,所以只能再想别的方法了
经过查找资料可以知道ifs还有一种写法就是"$IFS$1",那就这样再试一下,不成功便成仁:
终于成功了:
从这里的代码就可以看出他有多莫得变态,把我们想输得都给我们过滤掉了(这里想了很久感谢这位师傅提供的灵感):
命令执行漏洞利用及绕过方式总结 - ghtwf01 - Welcome to ghtwf01's blog
总之就是如果正常语句行不通那么就先把他加密确保其中不再有,绕过过滤之后就可以执行了进行base64解密:
playbode为:
终于看到曙光了:
阿这,我不信看看源码:
!!!
终于成功了
总结
看起来不难的题,却处处设置过滤陷阱,真正要我们重视的是在学习的过程中,千万不要被他的过滤信息吓到,后面还有很多方法可以让他漏出马脚。
最重要的是那个师傅的博文,简直是这类题型的大杀器。