题目页面
点击右上角Menu可以进入flag页面
提示只有CUIT的学生才能购买flag
需要100000000才能购买flag
必须回答出正确密码才能购买flag
发现源代码里有php代码
isset()函数是用来检验变量是否被设置的。
is_numeric()函数检测字符串是否只由数字组成,如果字符串中只包括数字,就返回Ture,否则返回False。
对于$password == 404,在PHP中==是一种弱类型比较,即只取字符串中开头的整数部分进行比较。
POST方式传入两个参数,password和money,其中password要绕过is_numeric()函数,并且密码还要等于404,php弱类型匹配
于是我们直接让password=404a或password = 404%20
(相当于在404后面加了一个空格,其他空白字符也可以绕过)就可以了,既绕过了is_numeric()又完成了password的匹配。然后我们的钱需要100000000于是我们bp抓包发送POST请求。
此处0改为1,表示是学生
得到结果显示数字太长
1、科学计数法绕过
money=1e9
2、数组绕过
money[]=1
得到flag