| 字段 | 内容 |
|---|---|
| 报告编号 | VULN-OMS-2026-006 |
| 漏洞等级 | 🟠 中危 |
| 漏洞类型 | 安全机制绕过 (Security Mechanism Bypass) |
| 目标系统 | example-poseidon3.*****.com (Poseidon3企业应用平台) |
| 发现日期 | 2026-07-07 |
| 影响范围 | 🔴 全部10个微服务 |
Poseidon3企业应用平台的所有10个微服务均部署了防Burp Suite代理抓包的Token防护机制,接口路径为 /{service}/inner/getPreventBurpToken。然而该Token获取接口本身无需任何身份认证即可访问,攻击者可直接调用该接口获取防护Token,随后携带该Token绕过防护机制进行任意请求的代理抓包和重放攻击。这使得平台的防抓包防护机制形同虚设。该漏洞属于OWASP Top 10中 A05:2021 - Security Misconfiguration 类别。
| 序号 | 服务名 | 服务标识 | 接口地址 |
|---|---|---|---|
| 1 | 平台主服务 | platform-server | GET /platform-server/inner/getPreventBurpToken |
| 2 | 门户服务 | po-server | GET /po-server/inner/getPreventBurpToken |
| 3 | 报审服务 | pr-server | GET /pr-server/inner/getPreventBurpToken |
| 4 | 消息服务 | mb-server | GET /mb-server/inner/getPreventBurpToken |
| 5 | 结算服务 | kc-server | GET /kc-server/inner/getPreventBurpToken |
| 6 | 审批服务 | sp-server | GET /sp-server/inner/getPreventBurpToken |
| 7 | CA认证 | ca-server | GET /ca-server/inner/getPreventBurpToken |
| 8 | 标准管理 | stdmgt-server | GET /stdmgt-server/inner/getPreventBurpToken |
| 9 | 文件管理 | filemanage-server | GET /filemanage-server/inner/getPreventBurpToken |
| 10 | 文件处理 | filemanage-handle-server | GET /filemanage-handle-server/inner/getPreventBurpToken |
/inner/ 开头,表明该接口设计上属于内部接口/inner/ 路径的接口以 po-server 为例:
curl -sk "https://example-poseidon3.*****.com/po-server/inner/getPreventBurpToken"
响应:
{
"code": "00000",
"data": ["D8978798F2102282EF0AA1F3A****845"]
}
| 字段 | 内容 | 风险等级 |
|---|---|---|
code |
状态码 00000 表示成功 |
🔵 低 |
data |
防护Token数组,包含MD5格式的Token值 | 🔴 高 |
| 特征 | 说明 |
|---|---|
| 格式 | 32位大写十六进制字符串(MD5) |
| 长度 | 固定32字符 |
| 时效性 | 需验证是否有时效限制 |
| 唯一性 | 需验证每个服务的Token是否独立生成 |
# 逐个获取所有10个服务的防护Token
for svc in platform-server po-server pr-server mb-server kc-server \
sp-server ca-server stdmgt-server filemanage-server \
filemanage-handle-server; do
echo "=== $svc ==="
curl -sk "https://example-poseidon3.*****.com/$svc/inner/getPreventBurpToken"
echo ""
done
# 获取Token
TOKEN=$(curl -sk "https://example-poseidon3.*****.com/po-server/inner/getPreventBurpToken" \
| jq -r '.data[0]')
# 携带Token访问其他接口
curl -sk "https://example-poseidon3.*****.com/po-server/portal/member/login/getUserInfo" \
-H "X-Prevent-Burp-Token: $TOKEN"
1. 攻击者使用Burp Suite等代理工具拦截请求
2. 系统检测到代理特征,拒绝响应
3. 攻击者调用 getPreventBurpToken 获取有效Token
4. 将Token注入到后续请求的Header或Cookie中
5. 系统认为请求合法,正常响应
6. 攻击者可继续使用代理工具进行请求拦截和重放
1. 编写脚本先调用 getPreventBurpToken 获取Token
2. 将Token注入到扫描工具(如sqlmap、nikto)的请求中
3. 绕过防护机制后对系统进行自动化漏洞扫描
4. 发现更多潜在漏洞
1. 获取防护Token
2. 结合代理抓包获取用户的Session Cookie
3. 使用Session Cookie和防护Token冒充合法用户
4. 访问用户的敏感数据和业务功能
1. 遍历所有10个微服务的 getPreventBurpToken 接口
2. 收集所有服务的防护Token
3. 对每个服务分别进行渗透测试
4. 攻击面覆盖整个微服务架构
影响范围: 攻击面覆盖全部10个微服务,整个平台的防抓包防护机制完全失效。
| 层级 | 问题 |
|---|---|
| 架构层 | 防护Token机制设计缺陷,Token获取接口与Token校验逻辑分离 |
| 设计层 | Token获取接口未做认证,形成”先有鸡还是先有蛋”的安全悖论 |
| 配置层 | /inner/ 路径未配置网络访问控制或认证拦截 |
| 部署层 | 内部接口暴露在公网,未通过网络隔离保护 |
| 维度 | 影响 |
|---|---|
| 机密性 | 🟡 中 — 绕过防护后可使用代理工具抓取请求数据 |
| 完整性 | 🟡 中 — 绕过防护后可重放和篡改请求 |
| 可用性 | 🔵 低 — 不直接影响系统可用性 |
| 业务影响 | 🔴 高 — 整个平台的防抓包防护机制失效 |
| 攻击面 | 🔴 极广 — 影响全部10个微服务 |
getPreventBurpToken 接口必须要求有效的登录Session或Token才能返回防护Token。/inner/ 路径接口仅允许内网IP访问,通过Nginx/网关配置IP白名单。/inner/ 路径接口,建立内部接口安全规范,确保所有内部接口不暴露在公网。报告日期: 2026-07-07