爆破练习
Web21
Bp抓包登录数据包,发送到攻击模块发现是base64加密了

发现格式为admin:1111

构造payload
自定义攻击模式custom iterator
admin,:,字典导入


解码发现密码

Web22
环境失效了
Web23
if(isset($_GET['token'])){
$token = md5($_GET['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 $flag;
}
}
}
代码审计
变量 token 被 md5 加密,且它的第一位 = 第十四位 = 第十七位,化为整数后(第一位 + 第十四位 + 第十七位)/ 第一位 = 第三十一位,则可获得 flag。
写py代码:
import hashlib
for i in range(1, 1000):
# 将整数转换为字符串,并编码为字节
token_bytes = str(i).encode('utf-8')
token = hashlib.md5(token_bytes).hexdigest()
# 检查第一个条件
if token[1] == token[14] == token[17]:
# 将字符转换为整数,并计算表达式
sum_of_chars = int(token[1], 16) + int(token[14], 16) + int(token[17], 16)
quotient = sum_of_chars / int(token[1], 16)
# 将哈希值的第32个字符转换为十进制数
target_value = int(token[31], 16)
# 检查第二个条件
if quotient == target_value:
print(f'token={i}, md5={token}')

Web24
核心代码审计
$r = $_GET['r'];
mt_srand(372619038);
if(intval($r)===intval(mt_rand())){
echo $flag;
}
函数解释:
mt_srand(): 用于设置 Mersenne Twister 随机数生成器的种子
mt_rand(): 则用于生成一个随机整数
intval():函数用于获取变量的整数值
生成的随机数是固定的爆破即可得到
<?php
mt_srand(372619038);
$r = mt_rand();
echo 'r='.$r;
?>

Web25
核心代码审计:
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(hexdec(substr(md5($flag), 0,8)));
$rand = intval($r)-intval(mt_rand());
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
要求传参r随机生成种子不为0,和token值为(mt_rand()+mt_rand())相加但两个值是随机生成不相等,
工具下载地址
https://www.openwall.com/php_mt_seed/
传参?r=0

爆破种子
查看php版本

发现存在三个种子

Payload代码:
<?php
mt_srand(2243444795);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2,"\n\n";
mt_srand(2783628342);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2;
echo "\n";
echo "\n";
mt_srand(3195512284);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2;
?>


Web26
页面输入数据抓包

发送到攻击模块,用字典爆破密码

爆破成功密码为:7758521

Web27
查看录取学生名单

学生管理系统登录抓包爆破
621022199002015237
得到学号
02015237

Web28
发现页面/0/1/2.txt
可能存在爆破文件目录获取信息

发送到攻击模块爆破目录名

爆破目录成功72/20

&spm=1001.2101.3001.5002&articleId=140590197&d=1&t=3&u=28788bcce9e3405d8217151446a17eac)
1387

被折叠的 条评论
为什么被折叠?



