[极客大挑战 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 ! ! !
文章讲述了在极客大挑战2019的一个任务中,参与者需要通过分析源码找到正确路径来获取Flag。关键点包括检查密码是否为数字、弱类型比较的漏洞(404a绕过),以及对money参数的科学计数法或数组利用进行绕过,以解决Web应用的安全问题。
308

被折叠的 条评论
为什么被折叠?



