本文为 CISP-PTE 备考学习笔记所有操作仅在官方授权靶场、本地自建靶场环境完成。 文中 Payload 仅用于原理学习、靶场练习。严禁直接套用在任何未授权公网业务系统。未经授权对网站进行注入、扫描属于违法行为请遵守《网络安全法》。 本文目的理解漏洞原理、学习漏洞防御请勿用于非法测试。首先我们要了解一下什么是爆破呢爆破本质是程序对“身份认证”或“资源路径”的校验不够严格攻击者用字典反复提交候选值通过响应差异判断哪一个值是正确的。PTE 里的爆破不是电影里的无脑跑密码而是先判断防护有没有缺陷再用 Burp Intruder 做有依据的尝试。Web 系统正常做法登录口应有一次性验证码、失败次数限制、账号锁定、强口令策略、多因素认证目录应有权限控制备份文件不应放在 Web 目录。有缺陷的写法验证码可复用、Token 不校验、Basic 认证只做 Base64 包装、后台路径靠“隐藏”保护、失败响应与成功响应差异明显。一、爆破详细种类1. 按爆破对象划分1登录口令爆破这是最常见的一种。对登录框的用户名、密码字段加载字典示例请求如下POST /login.php HTTP/1.1 Content-Type: application/x-www-form-urlencoded usernameadminpassword§123456§captchaAB12特点PTE 中常配合“验证码可复用”出现字典通常由题目提供。2Basic 认证爆破访问站点时会弹出用户名和密码输入框抓包后可以看到如下请求头Authorization: Basic YWRtaW46cXdlcnR5Basic后面是用户名:密码的 Base64 编码。注意用户名和密码要先拼成user:pass再整体编码不能在 Burp 里简单拆成两个普通位置。Burp 配置Payload 类型选 Custom Iterator位置 1 放用户名分隔符:位置 2 放密码字典Payload Processing 加 Base64-encode。3目录 / 路径爆破用于猜测隐藏路径例如/admin、/backup、/phpmyadmin以及.bak备份文件示例请求如下GET /§admin§/ HTTP/1.1 Host: target特点如果站点套了 Basic 认证或需要 Cookie直接扫描会全是 401要在 Intruder 请求模板中保留Authorization头或 Cookie再替换路径位置。4验证码复用爆破页面有验证码但服务端没有做到“一次一用”。输入一次正确验证码后抓包固定captcha字段只让密码字段变化即可跑字典。判断方法连续重放同一验证码请求如果响应一直正常往下走说明验证码未与会话一次性绑定。5默认口令 / 弱口令试探不是大规模跑字典而是先试admin/admin、admin/123456、test/test等。PTE 中有时入口就是默认凭据先试几下能省很多时间。6Cookie / Token / Header 参数爆破有些系统把身份参数放在 Cookie、Token、隐藏字段或请求头里。若参数可预测、可枚举也可能成为爆破点。PTE 中较少单独出题但综合题可能遇到。2. 按 Burp Intruder 攻击模式划分1Sniper狙击手一个 payload 位置单字典。最常用登录密码爆破、目录爆破都用它。2Battering ram破城锤多个位置使用同一个 payload。适合用户名和密码相同的场景PTE 较少。3Pitchfork草叉多个字典并行一一对应。适合已知用户名列表和密码列表一一匹配。4Cluster bomb集束炸弹多个字典笛卡尔积组合。适合用户名和密码都需要枚举但请求量大PTE 中要控制线程。3. 按结果判断方式划分1响应长度差异成功登录和失败登录的页面长度通常不同。Intruder 结果按 Length 排序明显跳变的那一行往往是正确凭据。2状态码差异失败返回 200成功可能返回 302 跳转。看 Status 列即可筛选。3Grep-Match 关键词在 Intruder 的 Options 中设置成功页面才出现的关键词如key、success、欢迎命中行会被标记。4重定向差异成功登录后跳转到后台首页失败则停留原页。看响应头Location或是否跟随重定向。4. 按防护缺陷划分验证码可复用无失败次数限制无账号锁定Token 不刷新、不绑定会话Basic 认证仅 Base64 包装前端 JavaScript 校验抓包可绕过目录仅靠“隐藏”保护备份文件可下载成功/失败响应差异过大。二、爆破过滤原理防护手段开发 / WAF 常用的爆破防护方式验证码一次性每次提交后验证码立即失效绑定会话。失败次数限制同一账号或 IP 连续失败 N 次后锁定或延迟。频率限制限制单位时间请求数触发后封 IP 或返回验证码。账号锁定多次失败锁定账号需管理员解锁。多因素认证密码正确后还要短信、OTP、硬件密钥。强口令策略避免弱口令进入字典。WAF / 防暴破模块识别高频请求、异常 User-Agent、固定验证码复用。Basic 认证改表单 HTTPS不要把 Basic 认证暴露在公网且必须走 HTTPS。目录权限控制后台、备份、数据库管理入口限制来源 IP备份文件不放在 Web 目录。日志与告警对高频失败登录、目录扫描进行监控。❗爆破防护的本质不是“过滤某个 payload”而是限制尝试次数、增加单次尝试成本、让成功/失败响应不可区分。单纯黑名单过滤密码关键字意义不大。✅真正安全的方案一次性验证码、失败锁定、频率限制、多因素认证、强口令、最小权限、日志告警三 cisp-pte 验证码爆破例子我们先抓个包 这里是我用的国产的工具渗透工具Yakit咱们发现题目上给了admin这个账号所以咱们先随便输入一个密码和验证码来看看后端返回什么咱们发现usernameadminpassword31231231code9263Cookie: PHPSESSID8kdv8nj90cjtu32ahcht1po7f1这两行咱们请求登录 前面讲过 cookie是一个标识 然后code自然也是验证码的字段本题目叫做验证码爆破在正常的登录逻辑里Cookie通常含 Session ID负责把这一次请求和之前的验证码验证动作绑定在一起验证码字段则用来证明“你是人”。删掉它们的目的是为了测试服务端到底有没有真正校验这两样东西。删掉验证码字段如果服务端在接收参数时没有做非空判断或者验证码仅仅是在前端 JavaScript里校验的那么请求到达后端时后端可能根本不检查这个参数是否存在。删掉它后请求依然被受理就证明验证码这层防护在服务端是“纸糊的”。删掉Cookie标签这是更关键的一步。如果删掉Cookie意味着丢失了 Session后服务端依然不报错并且继续处理密码字段就说明登录过程根本没有与会话机制绑定。服务端很可能只是单纯地拿你提交的密码去数据库比对完全不在意这个请求是不是“同一个人”发来开始爆破上方咱们知道admin是用户名咱们可以插入密码字典进行爆破爆破结束后 下一步 我们可以从数据包里查看数据包咱们发现全部是200ok 那么下一步咱们可以观察包的响应大小 发现admin 123qwe响应包大小是1668猜测这个应该是就是密码利用账号登录后 得到key