github编辑

[PwnThyBytes 2019]Baby_SQL

[PwnThyBytes 2019]Baby_SQL

考点

  • PHP_SESSION_UPLOAD_PROGRESS伪造session

  • PHP_SESSION_UPLOAD_PROGRESS结合session配置进行盲注

  • SQL盲注

wp

F12发现提示/source.zip,访问得到源码。

在index.php中对所有的输入进行判断,必须是字符串然后做addslashes处理。然后是进行路由处理,主要有3个文件,home.php、login.php和register.php

foreach ($_SESSION as $key => $value): $_SESSION[$key] = filter($value); endforeach;
foreach ($_GET as $key => $value): $_GET[$key] = filter($value); endforeach;
foreach ($_POST as $key => $value): $_POST[$key] = filter($value); endforeach;
foreach ($_REQUEST as $key => $value): $_REQUEST[$key] = filter($value); endforeach;

function filter($value)
{
    !is_string($value) AND die("Hacking attempt!");

    return addslashes($value);
}

在注册处,username的条件

  1. 不能包含admin中的任一字符

  2. 长度6-10

  3. 必须由字母和数字组成

然后插入数据库

登录处使用select语句验证账号密码,然后把用户名写入session

home是只返回一个静态页面。

这里在用了session,只在index.php进行初始化,后面每个页面都是判断session是否存在。

那可以通过PHP_SESSION_UPLOAD_PROGRESS上传一个session,在templates/login.php页面进行盲注即可

最后更新于