web21
先随便输入一个账户密码
抓包
输入的账户名和密码被base64加密了,解码发现它的形式为——admin:密码,接下来构造payload
用自定义迭代器 第一段为admin 第二段为“:” 第三段为题目附件下载的密码 进行base64加密后爆破即可
web22
web23
打开可以看到php代码,首先分析代码,可以知道 token被md5加密,且它的第一位=第十四位=第十七位,(第一位+第十四位+第十七位)/第一位=第三十一位
php脚本
<?php
error_reporting(0);
$a="asdfghjklqwertyuiopzxcvbnm1234567890";
for($i=0;$i<36;$i++){
for($j=0;$j<36;$j++){
$token=$a[$i].$a[$j];
$token = md5($token);
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
echo $a[$i].$a[$j];
exit(0);
}
}
}
}
?>
运行后得到3j 传参token=3j
web24
mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机 数
在kali上运行一下 或者通过php脚本
运行得伪随机数1155388967 传递?r=1155388967即可获取flag
web25
web26
直接输入 发现不行
爆破一下密码
爆破完即可