这个应该是网页的源码
开始代码审计
我们可以很明显的看到一个麻烦的东西
if($stuff === $array && $stuff[0] != ‘admin’) {
这里即要求一个强等于,还要求首元素要不一样
然后是一个正则,还有一个黑名单
第一个应该要从php5.5.9自身的漏洞入手,去查查资料
问题出在php中key数组的溢出
https://segmentfault.com/q/1010000003871264
这个链接是一个类似的题目,刚刚查找到的漏洞就是从这篇文章了解到的
根据这道题目我们来构建本题的payload
stuff[4294967296]=admin&stuff[1]=user&num=123456
好,我们构建完成后去尝试一下
Nice~,成功绕过第一个
第二个问题就是那个数字检测了,得绕过它我们才可以进行命令查询
接着查资料
But,搜了一大堆如何绕过数字检测就是查不到资料
直接选择了看看大佬的wp
使用换行符%0a
本来想着查一下这个会不会有
然而hacker突然不干了,得儿,去试试bp吧
没急着用bp,先看看这里的hacker能不能直接弄出来
这里我还犯了一个错误,在抓包时一直不成功,后来看了上传方式是get,才注意到在hacker使用错了,改正过来后就好了
其实到这里题目就已经完成了,因为我们只要输入正确的命令执行语句就可以拿到flag了
首先查询所有信息
唉~ 这不就出来了吗
这里我们使用tac来读取文件
拿到flag