攻防世界-favorite number

一道web题
攻防世界-favorite number_第1张图片题目并没有给我们有用的提示信息
进入环境
攻防世界-favorite number_第2张图片

这个应该是网页的源码
开始代码审计
我们可以很明显的看到一个麻烦的东西
if($stuff === $array && $stuff[0] != ‘admin’) {
这里即要求一个强等于,还要求首元素要不一样
然后是一个正则,还有一个黑名单
第一个应该要从php5.5.9自身的漏洞入手,去查查资料
攻防世界-favorite number_第3张图片

攻防世界-favorite number_第4张图片
问题出在php中key数组的溢出
https://segmentfault.com/q/1010000003871264
这个链接是一个类似的题目,刚刚查找到的漏洞就是从这篇文章了解到的
根据这道题目我们来构建本题的payload
stuff[4294967296]=admin&stuff[1]=user&num=123456
好,我们构建完成后去尝试一下
攻防世界-favorite number_第5张图片

Nice~,成功绕过第一个
第二个问题就是那个数字检测了,得绕过它我们才可以进行命令查询
接着查资料
But,搜了一大堆如何绕过数字检测就是查不到资料
直接选择了看看大佬的wp
攻防世界-favorite number_第6张图片
使用换行符%0a
本来想着查一下这个会不会有
攻防世界-favorite number_第7张图片
然而hacker突然不干了,得儿,去试试bp吧
攻防世界-favorite number_第8张图片没急着用bp,先看看这里的hacker能不能直接弄出来
攻防世界-favorite number_第9张图片

得儿,白忙活
直接用bp抓取后成功绕过
攻防世界-favorite number_第10张图片

这里我还犯了一个错误,在抓包时一直不成功,后来看了上传方式是get,才注意到在hacker使用错了,改正过来后就好了
其实到这里题目就已经完成了,因为我们只要输入正确的命令执行语句就可以拿到flag了
攻防世界-favorite number_第11张图片

首先查询所有信息
唉~ 这不就出来了吗
这里我们使用tac来读取文件
攻防世界-favorite number_第12张图片

拿到flag

你可能感兴趣的:(攻防世界-favorite number)