information-disclosure-methodology

$npx mdskill add wgpsec/AboutSecurity/information-disclosure-methodology

Extract credentials and attack paths from exposed source code.

  • Recover deleted passwords and flags from git history.
  • Parse SVN wc.db and .DS_Store for hidden file lists.
  • Prioritize disclosure over exploitation for faster access.
  • Deliver actionable paths to bypass security controls.

SKILL.md

.github/skills/information-disclosure-methodologyView on GitHub ↗
---
name: information-disclosure-methodology
description: "Web 应用敏感信息泄露检测与利用。当发现 .git/.svn 目录、备份文件路径(.bak/.zip/.tar.gz)、.env 配置文件、Swagger/OpenAPI 文档、debug 页面等信息泄露点时使用。也适用于发现源码泄露后的深入利用:git 历史审计(git log -p -S 搜索已删除的密码和 flag)、svn wc.db 文件列表提取、.DS_Store 目录枚举。优先于漏洞利用——信息泄露可直接提供凭据和攻击路径,往往比直接挖漏洞更快进入系统"
metadata:
  tags: "information_disclosure,information disclosure,source-code,backup,debug,credentials,ssh,.git,.svn,.env,git-dumper,svn-extractor,源码泄露"
  category: "exploit"
---

# 信息泄露方法论

## ⛔ 深入参考(必读)

- .git 完整利用链(dump → 历史审计 → stash/分支 → 凭据提取)→ [references/source-recovery.md](references/source-recovery.md)
- .svn 利用(entries 文件 / wc.db SQLite 查询 / pristine 文件恢复)→ [references/source-recovery.md](references/source-recovery.md)
- .DS_Store 解析、Swagger 利用、凭据搜索 → [references/source-recovery.md](references/source-recovery.md)
- API 参数操控泄露(query=%通配符、info→list变换、pageSize放大、空数组绕过)→ [references/api-param-tricks.md](references/api-param-tricks.md)

## Phase 1: 源码和配置文件
直接请求常见敏感路径(逐一测试或批量扫描):
```
/.git/HEAD          /.env              /config.py         /Dockerfile
/.svn/entries       /.svn/wc.db        /.DS_Store         /robots.txt
/WEB-INF/web.xml    /package.json      /app.py            /backup.sql
/.dockerenv         /composer.json     /Gemfile           /requirements.txt
```
1. 使用 `curl -s -o /dev/null -w '%{http_code}' http://TARGET/<path>` 批量检测状态码
2. 对 200 响应进一步检查内容是否为真实文件(排除自定义 404 页面)
3. `.git/HEAD` 返回 200 → git-dumper 整体 dump → git log 审计历史提交找密码/flag!
4. `.svn/entries` 或 `.svn/wc.db` 返回 200 → svn-extractor dump → 提取文件列表和内容
5. `.env` 返回 200 → 直接读取数据库连接串、API Key、SECRET_KEY 等敏感配置
→ 源码恢复详细步骤 → [references/source-recovery.md](references/source-recovery.md)

## Phase 2: 调试信息
1. 发送畸形请求触发 500 错误页面(缺少参数、类型不匹配、非法字符)
2. Flask `debug=True` 显示完整源码和交互式 debugger(可能直接 RCE)
3. Django DEBUG=True 显示 settings、URL 路由、SQL 查询
4. Stack Trace 中提取:文件绝对路径、框架版本、数据库类型、变量值
5. 检查响应 Header:`Server`、`X-Powered-By`、`X-Debug-Token`、`X-Request-Id`
6. 尝试访问 `/debug`、`/trace`、`/actuator`(Spring Boot)、`/elmah.axd`(.NET)

## Phase 3: API 文档泄露
1. 逐一请求文档端点:`/docs`、`/swagger`、`/swagger.json`、`/swagger-ui.html`
2. 补充路径:`/openapi.json`、`/redoc`、`/api-docs`、`/graphql`、`/graphiql`
3. 检查 `/v1/docs`、`/v2/docs` 等带版本前缀的路径
4. API 文档中提取:所有端点列表、参数类型和示例值、认证方式、数据模型定义
5. 重点关注管理接口(`/admin/*`)、用户管理(`/users`)、文件操作(`/upload`、`/download`)
6. GraphQL introspection 查询:`{__schema{types{name,fields{name}}}}`

## Phase 4: 备份和日志
1. 扫描备份文件:`/backup.zip`、`/backup.tar.gz`、`/app.py.bak`、`/web.config.old`
2. 文件名变体:`index.php.bak`、`index.php~`、`index.php.swp`、`.index.php.swp`
3. 日志文件:`/access.log`、`/error.log`、`/debug.log`、`/app.log`
4. 使用 `spray` 或 `ffuf` 配合备份字典扫描更多路径
5. 数据库备份:`/dump.sql`、`/db.sql`、`/database.sql`、`/backup.sql`
6. 版本控制残留:`/.hg/`(Mercurial)、`/.bzr/`(Bazaar)

## Phase 5: API 参数操控
1. 发现 API 接口后,对查询参数做四种操控:置空、`%` 通配符、null、删除参数
2. `pageSize=9999` 放大分页,获取更多数据
3. `info` → `list` 端点变换,寻找列表接口
4. 空数组 `[]` → 删除 Token,测试认证绕过
5. 添加 `verbose=true`、`debug=1` 参数,检查是否返回额外信息
→ 详细技巧和案例 → [references/api-param-tricks.md](references/api-param-tricks.md)

## Phase 6: 凭据搜索
1. 在已获取的源码/配置中搜索:`password`、`secret`、`api_key`、`token`、`mysql://`
2. 检查 `.env` 文件中的数据库连接串和第三方 API 密钥
3. 搜索 SSH 私钥:`/.ssh/id_rsa`、`/home/*/.ssh/id_rsa`
4. Base64 编码的凭据:解码所有 Base64 字符串检查内容
5. **找到凭据后立即使用**:登录 Web、SSH 连接、数据库直连
6. Git 历史中搜索已删除的密码:`git log -p -S 'password'`

More from wgpsec/AboutSecurity

SkillDescription
401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
agent-security|
ai-data-security|