1、查看题目,在PAYFLAG目录中发现与flag有关。
2、查看源码,发现解题线索,post传参方式,传入参数money和password的值正确即可解出flag。
3、通过bp进行传参,解出flag。
知识点:
(1)在该题中需要修改Cookie: user=1 原因:user=1代表为可新用户
(2)bp进行POST传参时需要在两个位置进行修改
GET——POST
添加:Content-Type: application/x-www-form-urlencoded 途中位置如上
(3)传入参数:
这里就需要根据在源码中的提示来对password和money的值进行设计。
password的值是对404h进行弱相等的判断,所以只需要将传入的字符串设计为:
开头为404+任何其他字符串的形式即可。
money的值有两种绕过方式,
第一种是科学计数法:money=1e9 (这里e后面是>=9的任何数都行,不要超过题目的长度限制)
第二种是利用strcmp函数漏洞: money[]=1
(4)漏洞原理:
格式:strcmp(str1,str2)
该函数返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
strcmp比较的是字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。
在这道题目中,传入money[]=1可以使得该函数报错,但返回结果为真,所以可以绕过。