web入门21-30
web21
使用bp抓包,然后使用给的字典爆破账号密码,使用base64编码

获得flag

web22
域名已经失效了,无法爆破了

web23

分析代码,要求token的md5值的第一位和14位相同,14位和17位相同,然后这三位相加除以第一位等于第31位就会输出flag;因为1,14,17位数字相同,所以31位肯定等于3;写一个脚本
点击查看代码
import hashlib
for i in range(9999):
m = hashlib.md5(str(i).encode()).hexdigest()
if m[1] == m[14] == m[17] and m[1].isdigit() and m[31] == '3':
print(f"找到匹配: i={i}, MD5={m}")

输入token=422获得flag

web24
分析代码

给了一个随机数生成的种子,写一个代码用相同的种子生成随机数
点击查看代码
<?php
mt_srand(372619038);
for ($i = 0; $i < 1000; $i++) {
echo mt_rand() . "\n";
}
使用bp抓包,使用刚刚生成的数据爆破获得flag

web25

分析代码,可以发现如果给r赋值一个0,就会进入第二个if语句,然后判断失败会进入else语句输出随机数

在https://www.openwall.com/php_mt_seed/ 下载工具,用工具爆破种子

写一个脚本,用得到的种子爆破token
点击查看代码
<?php
mt_srand(2583922257 );
echo intval(mt_rand()) . "<br>";
echo intval(mt_rand())+ intval(mt_rand());
?>
得到token的值

使用r传参时要注意传第一个随机数,因为这样才能进入if语句,之后是判断token,当token正确时就会输出flag

web26

什么也别填直接使用bp抓包,发包后获得flag

web27
首先点击录取名单下载数据


然后选择查询系统,bp抓包后爆破用户身份证

得到用户完整身份证为621022199002015237

输入完整数据再次查询

获得学号和密码,登录获得flag

web28
使用bp抓包,去掉2.txt,爆破前两个数字

按状态码排序,会有一个200的状态码,flag就在里面

web29
分析代码

发现只要没有flag就能执行,使用*匹配flag

查看源码获得flag

web30
分析代码

发现禁用了system,可以使用exec代替syste,因为exec的输出不会直接显示,需要echo输出,flag用fla*来查找


浙公网安备 33010602011771号