원클릭으로
sensitive-info-exposure
敏感信息泄露检测 — 检测 API 响应、错误回显、日志、响应头、备份/元数据文件中是否暴露未脱敏的 PII / 凭证 / 内部地址 / 系统配置;适用于所有返回业务数据或错误信息的端点。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
敏感信息泄露检测 — 检测 API 响应、错误回显、日志、响应头、备份/元数据文件中是否暴露未脱敏的 PII / 凭证 / 内部地址 / 系统配置;适用于所有返回业务数据或错误信息的端点。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
白盒建模——一次深度建模产出五张共享模型:项目架构(技术栈/分层/框架自有封装/闭源依赖位置)、 入口点(路由/中间件信任边界)、认证与权限(会话/角色/多租户/归属字段)、业务(实体/流程状态机/ 业务不变量/高价值资产)、全局威胁(攻击面×漏洞类别的适用性映射,供下游逐一全测)。本能力不做漏洞判定,为后续 漏洞维度分析建立共享底图。
OS 命令注入综合检测——覆盖直接命令拼接 / shell 元字符 / 参数注入 / 间接 RCE,按回显 / 时间 / 带外通道分诊。 流量中参数值含主机名 / URL / 文件名 / 命令片段、响应里出现 shell 错误关键字(`/bin/sh` / `cmd.exe` / `command not found`)、注入 `sleep N` 耗时增加、上传后异步处理链路时使用。
文件上传多策略综合检测——覆盖扩展名 / MIME / 魔术数 / 解析漏洞 / 上传链组合(LFI / Zip Slip / SVG XSS / SVG XXE)。 流量含 multipart/form-data 上传、响应回显落盘路径、上传后文件可被 GET 解析、上传字段含 filename / path 可控时使用。
IDOR 水平越权检测 — 通过替换资源标识符(ID/UUID/路径)访问他人资源的风险;适用于用户资料、订单、文档、租户隔离场景。
检测路径穿越和本地文件包含(LFI)风险;当目标存在文件读取/下载/预览功能且含路径参数时触发;适用于文件下载、日志查看、模板加载等场景。
黑盒建模 — 迭代式攻击面建模,按站点级 / 页面级 / 功能级三粒度推进;进入新页面即触发一次页面级建模、切换新身份各刷新一次,产出端点账本与页面语义模型,为后续漏洞维度的适用性判断提供依据。
| name | sensitive-info-exposure |
| description | 敏感信息泄露检测 — 检测 API 响应、错误回显、日志、响应头、备份/元数据文件中是否暴露未脱敏的 PII / 凭证 / 内部地址 / 系统配置;适用于所有返回业务数据或错误信息的端点。 |
| when-to-use | 当需要检查接口响应、日志回显、导出内容是否暴露未脱敏的 PII/认证/财务/系统配置信息时 |
| allowed-tools | bash,read_file,list_files,rg |
| user-invocable | false |
敏感信息泄露成因:source(任何请求)→ sink(API 响应 / 页面响应 / 错误消息 / 日志 / Set-Cookie / 响应头 / robots.txt / sitemap / HTML 注释 / 缓存 / 备份文件 / 元数据端点 / swagger / git 元数据)。PII / 凭证 / 内部地址 / SQL 错误原文明文返回,无脱敏或最小化暴露。详见同根目录 pentest/web-security-testing/SKILL.md 漏洞成因图谱 · 敏感信息泄露行(不在本 skill 重复成因)。
关键 sink 形态:sink 不仅是"接口返回字段"——响应头、Set-Cookie、错误堆栈、日志查看接口、HTML 注释、JSON-LD、robots.txt 暴露的路径都是同一 sink 范畴。任何"服务端把信息发到客户端可见之处"都属 sink,按"信息是否真实敏感 + 接收方是否应见"判定,而非按字段名筛选。
以下是已知的常见敏感信息泄露触发线索,作为基线起点而非必检硬清单:
[x] done[-] n/a (原因)[+] added (来源)基线触发线索按"sink 语义"分类(不按业务命名):
/debug/* / /actuator/* / /_info / /metrics — 内部信息全集/swagger.json / /api-docs / /openapi.yaml — 接口结构 + 敏感字段定义/.env / /.git/* / /backup.zip / /db.sql / /.DS_Store — 凭证 + 源码Server / X-Powered-By / 自定义 X-Internal-* / Set-Cookie 中含可解码的会话 / 令牌信息c.JSON(user) 直接序列化整个 ORM 对象(含 password_hash / secret 字段);或 panic / 错误对象直接 String() 返回响应加载本 skill 时按这些问题思考:
133****1234 还是明文 13312341234?前端脱敏不算脱敏。limit=5),禁止批量拉取。138****5678),避免二次传播。recon-methodology 产出的 shared/models/site-model.md 端点总表)查询:
/.env / /.git/HEAD / /backup.zip / /swagger.json / /robots.txt / /sitemap.xml)/debug / /actuator / /_info / /metrics)对每个响应字段逐项对照敏感信息基线:
| 类别 | 字段示例 | 期望脱敏形态 |
|---|---|---|
| 身份标识 | 姓名 / 手机号 / 邮箱 / 身份证 / 护照 / 银行卡 | 张* / 133****1234 / 110101********1234 |
| 认证凭证 | 密码哈希 / JWT / session ID / API Key / AccessKey / Authorization | 完全不返回 |
| 地址设备 | 详细住址 / IP / MAC / 设备 UUID / 定位 | 仅返回脱敏区域,不返回精准定位 |
| 财务业务 | CVV / 完整卡号 / 税号 / 交易流水 / 内部备注 | CVV 永不返回,卡号脱敏 |
| 系统内部 | DB 连接串 / 内网地址 / 服务账号 / 私钥 / 内部错误堆栈 | 完全不返回 |
WWW-Authenticate / 错误消息是否泄露后端组件版本robots.txt / sitemap.xml 是否暴露内部路径或管理后台入口<script> 内嵌 JSON / JSON-LD 是否含密钥 / 内部地址 / TODOServer / X-Powered-By / 自定义头 / Set-Cookie 是否泄露版本或凭证Cache-Control: no-store / privatec.JSON(http.StatusOK, user) 直接序列化整个 ORM 对象,含 password_hash / secret_key 字段(list-api-pii-plaintext-exposure)panic(err) 或 c.String(500, err.Error()) 把 SQL 错误原文 / 文件路径返回客户端(error-stacktrace-internal-ip-exposure)/.env / /.git/config 等静态文件可访问,含 DB_PASSWORD= / AWS_SECRET_ACCESS_KEY=(static-env-file-credential-exposure)Set-Cookie: session=<base64 含明文 user_id+role> 而非随机 ID(response-header-token-leak)<script>var user = {{.}}</script>,含 password_hash(html-template-object-pii-exposure)以下是敏感信息泄露维度的典型窄化误判:
133****1234 → 安全" — 错。脱敏必须服务端做。检查 Network 面板里 API 实际返回的是 133****1234 还是明文 13312341234。前端脱敏可被任何拿到接口的攻击者绕过。password / detail 字段 → 安全" — 错。可能在响应头、Set-Cookie、其他 endpoint variant(列表 vs 详情)、HTML 注释、JSON-LD、错误响应、日志查看接口等位置泄露。同实体不同入口需独立测。为什么这里是「必须」:反例义务属于交付契约——"未发现敏感信息泄露"或"已脱敏"结论是覆盖完整性的产物声明,缺失反向验证清单会让下游误信"该维度全站安全"。
写"未发现敏感信息泄露"或"已脱敏"前,产物必须包含:
清单不完整 → 结论降级为 partial-coverage 并显式声明未覆盖范围。
特别警示:以"前端已脱敏"为由判 safe 的,结论降级为 partial-coverage-frontend-only——必须给出 API 真实响应体的明文 / 脱敏证据,否则不得宣称服务端已脱敏。
通用闭环口径见同根目录 common/closure-verification.md(技能表 path 列同一抽取根下,需要时 read_file 读取)。核心:完整证据链才判 confirmed,中间信号最多 suspected。本漏洞特有要点:
confirmed,需证明真实敏感数据被读取suspected.env / .git)需验证是否真含凭证内容,不仅靠"文件可访问"| 现象 | 判定 |
|---|---|
| 对外响应稳定返回完整敏感信息明文,且接收方范围不应获得这些真实数据(含响应头/Set-Cookie/错误堆栈/静态文件等任一 sink) | confirmed |
| 存在部分敏感字段疑似暴露,或暴露范围 / 真实性仍需进一步确认(如疑似密钥但未验证有效) | suspected |
| 敏感字段均按最小暴露原则脱敏,且响应头 / 错误响应 / 静态文件 / 元数据各 sink 都有覆盖证据 | not vulnerable |
| 只测了部分入口或部分敏感类别(如仅业务 API,未测错误响应/静态备份) | partial-coverage(不得宣称 safe) |
/debug / /actuator / /swagger)生产环境关闭或加强鉴权.env / .git / .DS_Store / 备份文件,CI 阻断包含敏感文件的发布Server / X-Powered-By;Set-Cookie 使用随机不可解码的 session IDCache-Control: no-store,CDN 配置排除敏感路径