[极客大挑战 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}