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');
}
本来想发布的但是这个题太前面了,给你们(也给我)讲一下代码,其实有用的就是
为了得到flag我们必须使得$rand为0,也就是$r为mt_rand() 第二句应该看得懂就不说了
$rand = intval($r)-intval(mt_rand());
$_COOKIE['token']==(mt_rand()+mt_rand())
这里要使用一个工具php_mt_seed来进行种子的爆破再根据种子来获得flag
先我们传一个r=0获得随机数
然后我们利用工具爆破种子
再利用EXP获得两个根据种子生成的随机数
<?php
mt_srand(3603853888);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();
?>
然后传参
GET:
r=1165510977
cookie:
token1527048883
工具安装简单说一下就是先下载解压之后拖到kali里面,再升级

make升级一下然后就可以了,我们就可以直接使用
./php_mt_seed 随机数,升级这一步我不知道,整了很久查了很久,这下子你们可以乘凉了