ctfshow web入门 爆破 web25

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我们必须使得$rand0,也就是$rmt_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 随机数,升级这一步我不知道,整了很久查了很久,这下子你们可以乘凉了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值