码迷,mamicode.com
首页 > 其他好文 > 详细

[GWCTF 2019]枯燥的抽奖

时间:2021-06-18 18:57:56      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:设置   伪随机   ctf   pre   long   rand   tps   open   需要   

[GWCTF 2019]枯燥的抽奖

知识点:

种子爆破

https://www.openwall.com/php_mt_seed/

PHP的mt_rand函数作为一个随机数生成工具在程序中被广泛使用,但是我们不难发现它生成的随机数不是真正的随机数而是伪随机。既然是伪随机就有可能利用。

安装 php_mt_seed

  1. 【下载地址】
  2. 下载以后解压,然后到文件夹下 make 就会生成一个可执行文件
  3. 安装需要 gcc 环境

解题:

进入check.php查看源码:

cMUrE9Gapk

<?php
#这不是抽奖程序的源代码!不许看!
header("Content-Type: text/html;charset=utf-8");
session_start();
if(!isset($_SESSION[‘seed‘])){
$_SESSION[‘seed‘]=rand(0,999999999);
}

mt_srand($_SESSION[‘seed‘]);	// 使用 Mersenne Twister 算法返回随机整数。
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str=‘‘;
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
$str_show = substr($str, 0, 10);
echo "<p id=‘p1‘>".$str_show."</p>";


if(isset($_POST[‘num‘])){
    if($_POST[‘num‘]===$str){x
        echo "<p id=flag>抽奖,就是那么枯燥且无味,给你flag{xxxxxxxxx}</p>";
    }
    else{
        echo "<p id=flag>没抽中哦,再试试吧</p>";
    }
}
show_source("check.php");

发现mt_scrand()mt_rand()这俩函数; 并且session是用的随机数设置的;

先用脚本将伪随机数转换成php_mt_seed可以识别的数据

str1=‘abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
str2=‘cMUrE9Gapk‘
length = len(str2)
res=‘‘
for i in range(len(str2)):
    for j in range(len(str1)):
        if str2[i] == str1[j]:
            res+=str(j)+‘ ‘+str(j)+‘ ‘+‘0‘+‘ ‘+str(len(str1)-1)+‘ ‘
            break
print(res)

得到:

2 2 0 61 48 48 0 61 56 56 0 61 17 17 0 61 40 40 0 61 35 35 0 61 42 42 0 61 0 0 0 61 15 15 0 61 10 10 0 61

然后丢到php_mt_seed里:

技术图片

再根据这道题的脚本,把数转为字符串就好啦。

<?php
mt_srand(896280733);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str=‘‘;
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
echo "<p id=‘p1‘>".$str."</p>";
?> 

技术图片

[GWCTF 2019]枯燥的抽奖

标签:设置   伪随机   ctf   pre   long   rand   tps   open   需要   

原文地址:https://www.cnblogs.com/w0s1np/p/14896931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!