web25

 

这题,我盲才仍然不是爆破出来的

看了下代码

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这个脚本可以用来找种子

mt_rand种子破解

编译好之后开始破解

./php_mt_seed 1753751896

然后我么找到 php的版本

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

种子 3437114778