您当前位置: 首页 » 敏感函数 » mt_rand()

mt_rand()

2017年3月20日 | 发表评论(0) 查看评论

最近看到p牛在圈子分享文章php的随机数的安全性分析,于是自己翻了翻自己的笔记,找到一篇之前的文章,记录一下

一、函数原型及说明

int mt_rand ( int $min , int $max )

min  可选的、返回的最小值(默认:0)

max  可选的、返回的最大值(默认:mt_getrandmax())

二、函数风险及原理

同一页面的mt_rand生成的值可逆推

mt_srand(1234567890);可以生成一个mt_rand的种子

相同的种子生成的随机数是相同的

所以可以通过逆推mt_rand的种子来获得同页面的另一个rand的值

输出1932495331
307755112

通过上面步骤可以得到5个种子

1258853548

1421200369

1473492103

3812020532

3925337935

对这5次结果分别运算,可以推出来1473492103

是307755112这个结果

php_mt_seed解压后需要make一下

php_mt_seed下载地址: php_mt_seed-3.2

ctf实例:

asis ctf writeup ASIS CTF – 三个魔法Web关WriteUp

 

分类:

敏感函数

| 标签: