[极客大挑战 2019]BuyFlag wp
考察了strcmp()函数漏洞绕过方法
0/0知识点
这个函数是用于比较字符串的函数
int strcmp ( string $str1 , string $str2 )
参数 str1第一个字符串。str2第二个字符串。
如果 str1 小于 str2 返回 < 0;
如果 str1 大于 str2 返回 > 0;
如果两者相等,返回 0。
我们能用什么办法绕过验证呢
只要我们$_POST[’a’]是一个数组或者一个object即可
a[]=11111
即可使得上述代码绕过验证成功。
0/1解题
首先我们打开页面,点击右上角,跳转到pay.php
他告诉我们必须得到密码,其他什么也没有,那我们查看源代码看看
源代码中有一段php告诉我们需要post一个password=404但是不能是数字,和一个money=100000000,password不能是一个数,那么我么就在404后加一个字母a,试试
但是没有任何回显,那我们转个包看看
看到cookie那一行中user的值为0,把user=0改为user=1,再试试
他告诉我们,password对了,但是数字太长了,这里就利用了strcmp()函数漏洞绕过,如何绕过参考上面的知识点
ok,得到flag啦~