web21
首先下载网站提供的zip
直接通过burp爆破
随便输入账号和密码,使用提供的字典,进行爆破
经过base64解码 为我们输入的账号密码
设置
爆破完成,得到Flag
web22
提示:爆破子域名ctf.show
使用在线查询工具:在线子域名查询
逐个访问
发现
得到Flag
web23
由代码可以知道token被md5加密了,分析可知
当第二位等于第十五位等于第十八位,第二位加上第十五位加上第十八位除以第二位等于第三十二位时,输出Flag
php脚本:
<?php
$dict = "0123456789qwertyuiopasdfghjklzxcvbnm";
for ($i = 0;$i < 36;$i++){
for ($j = 0;$j<36;$j++){
$token=md5($dict[$i].$dict[$j]);
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 ('原字符串为:'.$dict[$i].$dict[$j]);
}
}
}
}
?>
运行完成后的到源字符串为:3j
得到Flag
web24
源码
其中
mt_srand和mt_rand
mt_srand() 函数播种 Mersenne Twister 随机数生成器。
mt_rand() 函数使用 Mersenne Twister 算法生成随机整数。
当随机数的种子是个确定值时(如本题),mt_rand()所得到的随机数也是确定的
下一步
得到Flag
web25
由源码可以发现我们可以利用r=0得到mt_rand()的值
得到mt_rand()值后,我们需要回推出种子
web26
查看源码得到
在checkdb.php页面POST
得到Flag
web27
点击录取名单
得到
其中身份证中的生日被隐藏了
点击查询系统
提示我们需要身份证号,接下来爆破身份证号
以“高先伊”为例
Unicode转码
登录即可到达Flag
web28
发现
将/2.txt去掉后进行爆破
Payload set 2 与此相同
得到Flag