使用dirsearch扫描:
dirsearch -u http://b31cefa6-24d4-4f14-82c3-0fdba166cecf.node5.buuoj.cn:81/ -e bak -t 1 -d 1 -o ./reports/buuoj.txt
扫描结果为:
文件扫描得到命令index.php.bak
保存之后,把.bak后缀去掉。打开文件得到代码,也可以直接用记事本打开
<?php
include_once "flag.php";
if(isset($_GET['key'])) {
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}
通过审计代码发现,key至接收数字类型,且会把数据转为整型格式,最后和123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3
字符串进行弱相等(==)比较。
==
为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行==
比较时。则b只会截取前面的整数部分。即b转化成123。
所以只要输入?key=123即可。