删除我之前说的御剑好用的说法,dirsearch yyds,因为御剑无法控制扫描速度,在buuctf的环境里有访问频率限制导致永远也扫不到,都是429太快了,这里使用dirsearch的延迟功能,一般常用用法是这样这个题使用
python dirsearch.py -u http://c76a7262-9c68-4cec-98bc-ec95fa494c8c.node4.buuoj.cn:81/ -e * -s 5
经检测,再快了就会出现429频率过高的错误,当然也可以改线程数,反正让它慢下来就行,晚网上那些一大堆429中间一个200的我都不知道是怎么实现了,从理论上来说有几率扫不到,如下图,不限制是根本找不到的,因为都是429 下图是延迟5s后的结果 flag.php访问了一下之后发现不行,是空的,所以下载这个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!";
}
这里涉及到一个php语法
== 为弱相等,也就是说12==“12” --> true,而且12==“12cdf” --> true,只取字符串中开头的整数部分,但是1e3dgf这样的字符串在比较时,取的是符合科学计数法的部分:1e3,也就是1000. 而且bool类型的true和任意字符串的弱类型相等
所以这里只需要构造一个key=123的get包上传即可 flag出了。所以这题主要是考扫描工具的使用,特别是有频率限制的这类请求,一定要注意限制自己的请求频率,不然可能字典里面有都扫不出来
|