这题,我盲才仍然不是爆破出来的
看了下代码
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(hexdec(substr(md5($flag), 0,8)));
$rand = intval($r)-intval(mt_rand());
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
}else{
echo $rand;
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
然后我发现他会输出 $rand, 然后 ineval($r) 是我输入进去的值,欸,那我岂不是可以试出来$rand了吗,说干就干,试出来了第一个mt_rand
=1753751896
但是下面,他又会使用新的随机数,mmp
自己写了脚本,没跑出来种子,看了一下hint,知道了php_mt_seed这个脚本可以用来找种子
编译好之后开始破解
./php_mt_seed 1753751896

然后我么找到 php的版本

然后就是从那一大堆种子里一个一个试,试了好多次,可算win了
种子 3437114778