查看源代码,发现pay.php文件
访问pay.php,并查看源代码
注释提示以post的方式传递money和password参数
1 if (isset($_POST['password'])) { 2 $password = $_POST['password']; 3 if (is_numeric($password)) { 4 echo "password can't be number</br>"; 5 }elseif ($password == 404) { 6 echo "Password Right!</br>"; 7 } 8 }
代码中第3行判断password是否为数字,第5行判断password值是否为404
获取flag的条件如下:
使用burpsuite进行抓包,将password赋值404a绕过is_numeric(),money赋值100000000,然后发现请求包中Cookie为user=0,习惯性的将它改为user=1
提示money数值太长,我们可以猜测后台使用的strcmp()进行比较,在5.3之前的php中,strcmp() 函数比较两个字符串,当传入的类型不是字符串类型,函数就会发生错误,返回return 0,这儿我们将money修改为数组类型便可绕过