web入门21-30

web21

使用bp抓包,然后使用给的字典爆破账号密码,使用base64编码
image
获得flag
image

web22

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

web23

image
分析代码,要求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}")

image
输入token=422获得flag
image

web24

分析代码
image
给了一个随机数生成的种子,写一个代码用相同的种子生成随机数

点击查看代码
<?php
mt_srand(372619038);
for ($i = 0; $i < 1000; $i++) {
    echo mt_rand() . "\n";
}

使用bp抓包,使用刚刚生成的数据爆破获得flag
image

web25

image
分析代码,可以发现如果给r赋值一个0,就会进入第二个if语句,然后判断失败会进入else语句输出随机数
image
在https://www.openwall.com/php_mt_seed/ 下载工具,用工具爆破种子
image
写一个脚本,用得到的种子爆破token

点击查看代码
<?php
mt_srand(2583922257 );
echo intval(mt_rand()) . "<br>";
echo intval(mt_rand())+ intval(mt_rand());
?>

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

web26

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

web27

首先点击录取名单下载数据
image
image
然后选择查询系统,bp抓包后爆破用户身份证
image
得到用户完整身份证为621022199002015237
image
输入完整数据再次查询
image
获得学号和密码,登录获得flag
image

web28

使用bp抓包,去掉2.txt,爆破前两个数字
image
按状态码排序,会有一个200的状态码,flag就在里面
image

web29

分析代码
image
发现只要没有flag就能执行,使用*匹配flag
image
查看源码获得flag
image

web30

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

image

posted @ 2026-01-16 11:35  大雪深埋  阅读(0)  评论(0)    收藏  举报