[极客大挑战 2019]BuyFlag Writeup
拿到页面在menu中找到PAYFLAG的页面,来到pay.php,查看源码有提示:
<!--
~~~post money and password~~~
if (isset($_POST['password'])) {
$password = $_POST['password'];
if (is_numeric($password)) {
echo "password can't be number</br>";
}elseif ($password == 404) {
echo "Password Right!</br>";
}
}
-->
提示需要POST一个password,并且password不能为纯数字。注意到elseif里面的判断语句用的是==,是弱类型比较,所以password="404aa"的时候会返回true。
因此用POST方法传password=404aa,在hackbar执行。

发现页面源代码没有任何改变,注意到"you must be a student from CUIT"
因此可能在请求头中有参数说明是"Cuit's students".
来到burpsuite

发现了cookie里有user=0,改成user=1,得到不同返回。

加上第一个提示中有"post money and password",因此还需要POST一个money,值为100000000


可是返回Nember lenth is too long,有什么办法可以输入数字少表示的数值大呢?
对了,马上想到科学计数法,于是:

得到flag咯

flag{5993f0a3-a386-4af0-9694-99d1cb704abe}

浙公网安备 33010602011771号