php弱类型比较
php中其中两种比较符号:
==:先将字符串类型转化成相同,再比较
===:先判断两种字符串的类型是否相等,再比较
前者为弱比较,后者为弱比较;
若在某种情况下不注意利用会导致漏洞的出现;
例子:攻防世界lottery:
进入页面,浏览后查看,大概就是要买七个号码,然后根据输赢来获取钱,再买flag
试了几次发现确实是随机数,没有规律,那就找漏洞
在页面管理器那是看不到全部码源的,试试是否有git泄露
在robots协议中发现存在git泄露
上述意思就是不允许所有用户访问/.git/文件,所有是存在git泄露的
打开kali,用githack进行下载码源(具体过程参考git源代码泄露_托物言志的博客-CSDN博客)
获取到源代码
并且在api这个接口文件中发现了比较的码源
比较过程为‘==’,为弱比较,bool型的true是能与其相等的,即true==1~9;
那就是可以通过抓包改包,修改值为bool的true,使其相等,只要win_numbers不出现0就能完全正确,获取最多的钱;
打开burp,开启代理抓包,修改值为 [true,true,true,true,true,true,true] 如下:
response后即可:
我这次很倒霉,这都错两个,才得1800!
接下来就是重复操作,获取到100W为止
(two thousand later......)
成功获取100W后购买flag
完毕