mt_srand()种子和mt_rand()随机数
题目
来自CTFSshow-WEB24
1 | error_reporting(0); |
解题步骤
先测试r=0
,网页回显-1387662750
,得到随机数mt_rand()=1387662750
由于要让!$rand
条件成立,获取flag的r=1387662750
下载编译
在mt_rand()
相加前,intval($r)-intval(mt_rand());
就调用过一次mt_rand()
,所以才有中间的,echo mt_rand()."\n";
1 |
|
添加cookie到数据包
题目原理
mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机数。
生成伪随机数是线性的,你可以理解为y=ax,x就是种子,知道种子和一组伪随机数不是就可以推y(伪随机数)
如题目,让r=0
就知道y的第一个确定值,通过爆破a,就能确定种子
参考链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DropAnn!