[极客大挑战 2019]BuyFlag
分析
进入靶场:
- 还是团队的介绍,没啥用。
- F12看下源码。
<li><a href="index.php">Home</a></li>
<li><a href="pay.php">PayFlag</a></li>
- 能发现上面两行代码,访问
pay.php
看一下
- 给出hint:要是学生,要给出正确的
password
,还要购买… - 看看源代码中有没有什么hint
<!--
~~~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>";
}
}
-->
-
可以从源代码中看到一段注释的php代码
-
post money and password
:从这里判断应该是要POST发送两个参数 -
if (is_numeric($password)) { echo "password can't be number</br>";
:password参数必须得是string -
elseif ($password == 404)
:这里是弱类型比较,可以用404a
去绕过
-
将
user=0
改为user=1
-
提示
Nember lenth is too long
,money参数需要再改改。 -
这里可以用科学计数法或者数组进行绕过。
GET Flag ! ! !