web_爆破
前言
很少做爆破的题,学习ing
web21
下载附件的dic.zip,发现给了一个字典,进入靶场发现要登录,猜测是字典爆破。
抓包发现这个请求头
1 | Authorization: Basic YWRtaW46MQ==//这个是base64编码的admin:1 |
我们对这个后面插入给的字典并base64编码
1 | Authorization: Basic {{base64enc(admin:{{payload(最新网站后台密码破解字典)}})}} |
爆破可得
web22
根据题目提示是爆破子域名,但是这个题估计把这个子域名下线了。所以看wp学习一下。
看到用layer,询问了一下ai发现只适用于Windows,所以下载了findomain,还是可以搜索的。不过findomain是利用证书等信息进行检索整合。
1 | findomain -t example.com |
还是有信息
web23
打开靶场看见一段php代码

本来想复制过来审计的,但是一直调整不好格式,遂截图。
以下是代码是审计部分(orz太久不审计了需要复建一下,顺便记录一些函数功能)
- 设置读取token为get参数,将其md5化
substr($token, 1, 1)是 PHP 的字符串截取函数调用,作用是:从 $token 字符串的第 2 个字符开始,截取 1 个字符。- 即,第一层条件校验为token的第2、15、18位字符相等
intval()是 PHP 的内置函数,作用是:获取一个变量的整数值。通常是直接截断,解析数字- 即,第二层条件校验为token的的(第2位+第15位+第18位)/第2位=第31位,即第31位为3则echo flag
接下来要满足这个条件,我们需要写一个爆破脚本。
1 | import hashlib |
- hashlib是一个哈希库
- encode()是把字符串转换成比特流,
“114514” -> b’114514 - hexdigest()把输出转化成十六进制字符串形式
web24

代码审计
- 接受get参数r
mt_srand()是 PHP 的内置函数,用于为 Mersenne Twister(梅森旋转算法) 随机数生成器设置种子。它的作用是初始化或重置随机数生成器的状态。- 这里种子被固定了,所以可以提前算出来
写个脚本吧
1 |
|
web25
懒得截图了,直接审计吧
- 接受参数r
mt_srand(hexdec(substr(md5($flag), 0,8)));承接上文,将md5的flag截取前八位,然后十六进制化,作为mt_srand的种子- rand = r - mt_rand
- rand为0的时候,token为两次mt_rand随机数之和时echo flag
先传一次r试试,得到第一次echo的rand为-936176863,则第一次的随机数为936176863
爆破种子工具php_mt_seed https://github.com/openwall/php_mt_seed
爆破后得到很多种子,根据种子爆破token,最终我用第二个种子可以成功
爆破脚本如下
1 |
|
web26
根据提示这个可以爆,且登录连接不上,可以拿出来我们准备好的rockyou了(((
把准备好的字典导入yakit可能需要一点时间……
算了还是别用rockyou了,我的电脑电扇呼呼呼了(((
这里还是要字典爆破密码,最终密码为7758521。
关于爆破。
因为我习惯用yakit,所以就用yakit导入了一个字典,这里我用的字典是Seclists的000000-password-seclists.txt,导入后发包,在规则配置中找到匹配器配置筛选功能,修改匹配规则,最终等待全部发完包之后可以提取到最终成功的密码。
当然,等待爆破也是**。建议直接跳过。
web28
抓包发现怎么全都302啊。
我们对0/1参数进行爆破,范围我选取了0-99,插入字典并过滤,找返回200的就行了。
这个题好没意思……
总结
花了一点时间,中间也出了一点问题跳过了一些题目……代码审计和算术爆破我都能接受,直接爆破字典还是太烦人了……
没有什么特别好总结的,主要就是算术和字典爆破。算术可能要经过代码审计和自己写脚本。
但是我懒得找字典orz
- Title: web_爆破
- Author: blank
- Created at : 2026-10-28 20:15:50
- Updated at : 2026-10-28 21:54:31
- Link: https://b1ank799.github.io/2026/10/28/web_爆破/
- License: This work is licensed under CC BY-NC-SA 4.0.