[GWCTF 2019]枯燥的抽奖 1

周末时间,抽个奖助助兴!
[GWCTF 2019]枯燥的抽奖 1
打开题目,发现是一个猜字符串的游戏,就问你枯不枯燥?
[GWCTF 2019]枯燥的抽奖 1

看到这想都不用想,CTRL+U查看后台代码,果然不出所料,发现了存在check.php[GWCTF 2019]枯燥的抽奖 1
[GWCTF 2019]枯燥的抽奖 1
通过代码审计并结合题目来看,这是一道php伪随机数的题,通过代码可以发现使用了mt_rand()函数播种并生成了随机数,先用脚本转换伪随机数编程能力太弱,查看wp发现了一个较好的python脚本(原文链接:https://blog.csdn.net/qq_41628669/article/details/106133105)

# -*- coding: utf-8 -*-
s = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
key = 'c1z5DuPZXT'
m = ''
for i in key:
    for j in range(len(s)):
        if i == s[j]:
            m += "{} {} 0 {} ".format(j,j,len(s)-1)
print(m)

2 2 0 61 27 27 0 61 25 25 0 61 31 31 0 61 39 39 0 61 20 20 0 61 51 51 0 61 61 61 0 61 59 59 0 61 55 55 0 61

下一步使用php_mt_seed4.0(下载地址)进行种子爆破
[GWCTF 2019]枯燥的抽奖 1
用爆破出来的种子生成题目中所要求的字符串

mt_srand(744449933);
$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]枯燥的抽奖 1

将所生成的字符串提交得到flag

上一篇:040-gwctf_2019_jiandan_pwn1


下一篇:美国*安全公司遭国家黑客攻击,网络武器库失窃