在拿到一个网页之后除了打开 F12 和抓包以外,还可以考虑扫一下后台,看一下有没有类似管理员页面、备份文件泄露和其他文件等。所谓扫描后台就是扫描站点的目录下还有哪些页面可以访问,可以使用御剑工具来做。
御剑后台扫描是 T00LS 大牛的作品,可以用于扫描后台,同时这也为程序开发人员增加了难度,需要对的后台目录结构进行优化。御剑的用法很简单,在左下角添加需要扫描后台的域名,然后在右上角选择使用的字典,然后设置合适的线程数和扫描速度等就可以开始扫描了。扫描结果会显示在中间,点击访问即可。
工具自带扫描的字典,同时我们也可以继续添加内容进去。
打开网页,看到一个很精致的 404,这显然不是真正的 404 页面。
尝试 F12、抓包等手段无果后,使用御剑扫描后台,发现一个 robots.txt 文件。
该文件指示了这个页面还有个 resusl.php 文件可以访问,访问到达另一个页面。此处得到关键提示,需要我们传入参数 x,当这个参数 x 和变量 password 相等时将发生很多事情。
根据提示“想办法变成 admin”,这个应该就是 x 的值了,传过去得到 flag。
打开网页看到一个登陆页面,注意到提示说 mysql 已经炸了,接下来的思路就不往 sql 注入去想。
F12 和抓包无果后,用御剑扫描后台,成功发现 3 个可访问的网页,在其中一个网页中得到了 flag。
打开网页,显示了一段不知道有什么意义的字符串。
根据提示,应该是有个 PHP 备份文件,使用御剑扫描出一个 index.php.bak 文件。
访问该文件,成功获得备份文件中的源码。想要 flag 显示的条件是变量 key1 和 key2 的值不相同,且它们的 md5 加密结果一样,这里无论是传数组还是使用 md5 碰撞都可以。
<?php
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
注意 str_replace 函数会把传入的变量中的 “key” 替换为空,也就是说传入的变量名为 “key1” 时,经过函数替换后变量名会变成 “1”。我们可以让变量名为 “kkeyey” 或者 “kekeyy”,这样替换之后就能够有 “key” 变量了。
/index.php?kkeyey1[]=1&kekeyy2[]=0
/index.php?kkeyey1=QNKCDZO&kekeyy2=s878926199a