打开题目,发现让我们找一下源码,找源码第一时间就想到了用dirsearch扫描。
用dirsearch扫描:
python dirsearch.py -u "http://b2fe3299-6a77-4bca-a1ec-31d5f8f7b8bc.node4.buuoj.cn:81/" -w db/ddd.txt
找到了200正在运行的/index.php.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!";
}
分析代码,我们发现,如果要得到flag,我们赋予的key的值和str就要想等,条件是弱等于。我们补充一个弱等于的知识点:
所以,str在和key进行比较的时候,会转换为123.而且key必须要满足是数字类型。所以满足条件,在url中对key进行赋值
得到flag:
总的来说,的确是一个很简单的题目。主要的考点就是dirsearch的使用和弱比较数字类型的绕过。