概述
写在前面
此部分内容读者可以读完文章再看,主要讲了工具参数的生成方法。未完待续
两参数mt_rand(最小值,最大值)
此处主要学习了php_mt_seed
源文档
翻到源文档,有没有发现与本题目一模一样呐。
php_mt_seed
官方PHP版payload其实可以直接使用。
<?php
$allowable_characters = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len = strlen($allowable_characters) - 1;
$pass = "rz51neG83x";
for ($i = 0; $i < strlen($pass); $i++) {
$number = strpos($allowable_characters, $pass[$i]);
echo "$number $number 0 $len ";
}
echo "n";
?>
生成的结果:php_mt_seed
参数
学习自
1.佩枪朱丽叶
https://shawroot.hatenablog.com/entry/2019/12/11/GWCTF_2019_WEB-%E6%9E%AF%E7%87%A5%E7%9A%84%E6%8A%BD%E5%A5%96
2. php_mt_seed
https://github.com/openwall/php_mt_seed/blob/main/README
start
我想一道题应该是这样的 看到伪随机数
我想我忘记怎么用这个工具了
掌握了使用方法。
尚不清楚PHP版本信息 按7处理
本文主要部分在于此段代码,即为php_mt_seed
用法
需要翻github文档
复现过程
代码:原作者:佩枪朱丽叶
str1='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str2='c3wBAyqpZM'
str3 = str1[::-1]
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)
17 17 0 61 25 25 0 61 31 31 0 61 27 27 0 61 13 13 0 61 4 4 0 61 42 42 0 61 34 34 0 61 29 29 0 61 23 23 0 61
KALI中运行
/php_mt_seed-main/php_mt_seed 17 17 0 61 25 25 0 61 31 31 0 61 27 27 0 61 13 13 0 61 4 4 0 61 42 42 0 61 34 34 0 61 29 29 0 61 23 23 0 61
跑出的种子:811224182
seed = 0x305a4c76 = 811224182 (PHP 7.1.0+)
PHP7在线环境生成结果
代码:原作者:佩枪朱丽叶
<?php
mt_srand(811224182);
$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>";
?>
<p id='p1'>rz51neG83xWSFre0enNc</p>
最后
以上就是欣慰未来为你收集整理的PHP可预测的伪随机数 :[GWCTF 2019]枯燥的抽奖的全部内容,希望文章能够帮你解决PHP可预测的伪随机数 :[GWCTF 2019]枯燥的抽奖所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复