BurpSuite+AI渗透测试(一):HTTP头注入
原创
yushao
yushao
Web安全工具库
2026年6月2日 09:24
河南
在小说阅读器读本章
去阅读
一、BurpSuite安装MCP server
二、配置MCP服务
\"burp\": { \"type\": \"sse\", \"url\": \"http://127.0.0.1:9876\", \"disabled\": false }
三、提示词
你现在是一名顶级 CTF Web 安全研究员。题目链接 *****.ctf.show/,目标:分析并解出下面这道 CTF Web 题目并输出Flag给我
渗透测试报告
目标系统: CTFshow Web Challenge
目标 URL: https://********.ctf.show/
测试日期: 2026年6月2日
报告类型: CTF 挑战赛渗透测试记录
一、测试概述
本次测试针对 CTFshow 平台一道 Web 方向题目,目标为通过分析 Web 应用的认证逻辑,绕过其多层验证机制,最终获取 Flag。测试过程中共发现两处安全漏洞:前端硬编码密码(Base64 编码)与服务器端 User-Agent 白名单校验。
最终 Flag: CTF{u*******s}
二、侦察与信息收集
2.1 目录枚举
对目标站点常见路径进行探测,结果如下:
| 路径 | HTTP 状态码 | 备注 |
|---|---|---|
index.php |
200 | 主登录页面,存在有效内容 |
robots.txt |
404 | 不存在 |
.git/HEAD |
404 | 无源码泄露 |
.env |
404 | 无环境变量泄露 |
flag.php |
404 | 不存在 |
config.php |
404 | 不存在 |
admin.php |
404 | 不存在 |
有效入口仅为 index.php,攻击面集中于登录表单。
2.2 前端源码分析
审计 index.php 返回的 HTML/JavaScript 代码,发现登录逻辑完全在客户端实现,且存在硬编码的 Base64 密码字符串:
const correctPassword = \"Q1*******Q==\";
// 前端校验逻辑
if (btoa(enteredPassword) === correctPassword) {
// 提交到服务器
}
对该 Base64 字符串进行解码:
$ echo \"Q1R*******0fQ==\" | base64 -d
CTF{ea*****4}
得到第一层密码: CTF{e*****64}
三、漏洞利用
3.1 漏洞一:前端硬编码凭据(Base64 明文存储)
漏洞描述: 应用将正确密码以 Base64 编码形式直接嵌入前端 JavaScript,Base64 并非加密手段,任何人均可轻易解码还原原始密码。
利用步骤: 直接使用解码后的密码向 check.php 发起 POST 请求。
curl -s -k -X POST \\
\"https://******.ctf.show/check.php\" \\
-d \"username=admin&password=CTF{e*****}\" -i
服务器响应(节选):
Invalid User-Agent
You must use \"ctf-show-brower\" browser to access this page
密码验证通过,但服务器端存在第二层校验——User-Agent 白名单限制。错误信息同时将白名单值 ctf-show-brower 直接暴露在响应体中,属于信息过度泄露。
3.2 漏洞二:User-Agent 请求头伪造绕过
漏洞描述: 服务器通过检查 HTTP 请求头中的 User-Agent 字段来判断客户端合法性,将安全策略建立在客户端可任意篡改的请求头上,属于不可信的安全控制。攻击者可以在任意 HTTP 客户端中手动指定该头部,完全绕过此限制。
此外,错误响应直接将白名单值 ctf-show-brower 回显给用户,主动泄露了绕过所需的关键信息。
利用步骤: 在请求中附加 User-Agent: ctf-show-brower 头部重新发起请求。
curl -s -k -X POST \\
\"https://*.ctf.show/check.php\" \\
-d \"username=admin&password=CTF{e*********4}\" \\
-H \"User-Agent: ctf-show-brower\" -i
服务器响应(节选):
Login successful! Flag: CTF{u********s}
两层验证均已绕过,成功获取 Flag。
四、漏洞汇总
| 编号 | 漏洞名称 | 严重程度 | 位置 |
|---|---|---|---|
| VUL-01 | 前端硬编码凭据(Base64) | 高危 | index.php JavaScript |
| VUL-02 | User-Agent 白名单校验可绕过 | 中危 | check.php 服务端逻辑 |
| VUL-03 | 错误响应信息过度泄露 | 低危 | check.php 错误提示 |
五、修复建议
针对 VUL-01: 密码校验逻辑必须在服务器端执行,前端不应包含任何与凭据比对相关的代码或数据。无论使用何种编码方式(Base64、Hex 等),将凭据存放于客户端都是不安全的。
针对 VUL-02: User-Agent 等 HTTP 请求头均由客户端控制,不能作为安全校验依据。若需限制访问来源,应结合 IP 白名单、Session Token、API Key 等服务端可信机制实现。
针对 VUL-03: 错误提示应采用通用措辞(如\"认证失败\"),避免向用户透露具体的校验逻辑或白名单内容,以防止为攻击者提供绕过线索。
本题的核心考点是:不要将任何安全逻辑或凭据放在客户端,以及HTTP 请求头不可作为身份验证的可信依据。两个漏洞单独来看危害有限,但组合利用后可完整绕过认证体系。
·今 日 鉴 图·
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论