[GWCTF 2019]枯燥的抽奖(php_mt_seed脚本&伪随机数生成)
我们首先打开页面源码,发现一串关键代码
1 | <script type="text/javascript"> |
我们在其中发现了一个文件check.php,我们访问它看看
得到了check.php的源码
1 | zmlIh72gss |
开始进行代码审计
可以注意到我们猜测字符串是采用伪随机函数依据种子生成的,所以我们可以利用脚本通过给出的部分字符串逆推出伪随机函数采用的种子(这里脚本采用的是php_mt_seed)。
先使用PHP编写程序把给出的部分字符串处理成脚本需要的数据格式,程序源码如下:
1 | <?php |
传入脚本执行得出种子。
生成完整字符串的代码从check.php中截取就ok,将获得的种子传入拿到完整的字符串。
1 | <?php |
得到原本的字符串
首页提交上去就能得到flag了