Warning
合法使用声明 / Legal Notice 本工具仅可用于你拥有合法授权的目标上进行安全测试(如授权渗透测试、自有资产盘点)。 严禁对任何未经授权的第三方目标使用本工具,由此产生的任何法律后果由使用者自行承担。 This tool is intended only for authorized security testing (e.g. pentests you are permitted to perform, or assets you own). Unauthorized use against third parties is strictly prohibited.
exposur — 面向 AI Agent 的 Web 供给面发现引擎
dirsearch / ffuf / feroxbuster 很优秀,但它们的游戏规则是词表与速度——那是社区多年积累的护城河,后来者没有胜算。
exposur 换了一个赛道:不拼词表总量,拼供给面覆盖度与输出契约。
- 一次
discover返回目标的完整暴露画像,而不是一堆路径 - 内置约 130 条高价值模式(VCS 泄露 / 配置 / API 规范 / 调试台 / 备份),每条带命中判据,宁缺毋滥
- 每条发现带
severity / confidence / evidence / **next_steps**——Agent 拿到就能决策下一步动作 - 面向机器的输出:JSON Lines 上 stdout,管道即用(
| jq、喂给 agent)
git clone https://github.com/YIbaikaishui/exposur.git
cd exposur
go build -o exposur ../exposur discover -u http://example.com终端输出示例(按严重级排序,脱敏显示):
[校准] 未发现通配行为
发现 11 条 (critical=5 high=2 medium=2 low=1 info=1)
[CRITICAL] Git 仓库泄露 (.git/HEAD) — http://target/.git/HEAD
[CRITICAL] 环境变量文件泄露 (.env) — http://target/.env
[CRITICAL] AWS Access Key ID — http://target/app.js
matched: AKIAIO****LE
context: const AWS_KEY = "AKIA****************";
[HIGH] Swagger 规范暴露 (/api/swagger.json) — http://target/api/swagger.json
[HIGH] API 规范可解析(swagger2,2 个操作)
paths(2): GET /users, POST /admin/delete
[MEDIUM] API 规范中存在高风险敏感操作
[MEDIUM] JS 中提取到接口路径
endpoints: /api/v1/users, /api/v1/orders/list
[INFO] ACME Admin Console — http://target/
./exposur discover -u http://target -o - 2>/dev/null | jq 'select(.severity=="critical")'
cat targets.txt | ./exposur discover -o - 2>/dev/null./exposur scan -u http://target -x php,bak --depth 2scan 保留了递归 / 校准 / JS 提取 / 代理的高性能扫描能力,是 discover 的底层引擎;日常使用推荐 discover。
目标 URL(-u / -C / stdin)
│
├─ 1. 入口画像 协议 · 重定向链 · 标题 · Server 指纹 · 登录页 · 脚本引用 · TLS 证书
├─ 2. 泄露模式 .git/.svn · .env/配置 · 备份/数据库 dump · 调试端点(~130 条高价值模式)
├─ 3. API 规范 swagger/openapi 解析全量操作 · GraphQL introspection · 敏感操作标记
├─ 4. 密钥扫描 AWS AK/SK · GitHub/GitLab Token · Slack · Google Key · JWT · 私钥块 · DB URI
└─ 5. JS 深挖 接口提取 · sourcemap 发现 · 密钥扫描
│
输出:Finding[](category / severity / confidence / evidence / next_steps)
| 参数 | 说明 | 默认值 |
|---|---|---|
-u, --url |
目标 URL(或 -C 文件 / stdin) |
— |
-o, --output |
输出目录,- 表示 JSON Lines 写 stdout |
results |
-p, --path |
追加自定义路径,逗号分隔 | 空 |
-t, --threads |
并发探测数 | 20 |
--timeout |
单请求超时 | 8s |
--js-analysis |
JS 深挖(接口/密钥/sourcemap) | true |
--proxy |
HTTP/SOCKS5 代理 | 空 |
-v, --verbose |
输出完整 next_steps 与 evidence | false |
{
"category": "vcs_leak",
"severity": "critical",
"url": "http://target/.git/HEAD",
"title": "Git 仓库泄露 (.git/HEAD)",
"confidence": 0.9,
"source": "pattern",
"evidence": { "status_code": 200, "matched": "/.git/HEAD",
"details": { "paths": ["GET /users"] } },
"next_steps": [
{ "action": "exploit-candidate", "target": "http://target/.git/HEAD",
"description": "尝试 git-dumper 恢复源码与密钥" }
]
}| 字段 | 说明 |
|---|---|
category |
vcs_leak / env_config / api_spec / secret_key / js_endpoint / source_map / debug_exposure / backup / entry_profile / directory |
severity |
critical / high / medium / low / info(输出按此降序) |
confidence |
0.0 ~ 1.0,判定置信度 |
next_steps |
机器可执行的后续动作(fetch / parse / probe / exploit-candidate) |
SKILL.md 描述何时调用、如何解析输出、category 与动作的对照表。AI Agent / 编码助手读取该文件即可把 exposur 接入侦察流程——无需 MCP 等重型集成。
- 校准(
internal/domain/model/calibrate.go):随机路径探测识别 SPA 通配 / 软 404,自动过滤无效响应 - 模式引擎(
internal/domain/surface/patterns.go):约 130 条高价值模式,每条带状态码 / 长度 / 内容类型 / 关键字多重判据 - 规范解析(
apispec.go):swagger2 / openapi3 解析全部操作,标出写操作与敏感关键字接口;GraphQL introspection 探测 schema - 密钥扫描(
secrets.go):15+ 条高精度规则,输出脱敏值 + 行号 + 上下文 - JS 深挖(
pipeline.go+internal/domain/model/jsanalysis.go):接口提取、sourcemap 溯源
exposur/
├── main.go
├── cmd/ # CLI(discover 主命令 / scan 单能力模式)
├── internal/
│ ├── domain/
│ │ ├── surface/ # 供给面领域:Finding / Pattern / 发现器 / 管线
│ │ └── model/ # 底层扫描引擎(队列/递归/校准/JS 提取/代理)
│ └── pkg/ # config / utils
├── data/ # 字典与 User-Agent 列表
├── results/ # 输出目录
└── SKILL.md # Agent 接入说明
- 入口画像 / 泄露模式库 / API 规范 / 密钥扫描 / JS 深挖
- 输出契约(severity / next_steps)与 Agent 接入
- 多目标横向聚合(同一后台 / 同一 API 跨资产关联)
- nuclei 模板联动(发现 → 一键验证)
- HTML 报告(交付场景)
- 插件化发现器
go build ./... # 构建全部包
go vet ./... # 静态检查
go test ./... # 运行测试欢迎提交 Issue 和 Pull Request:
- Fork 本仓库
- 创建特性分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送分支(
git push -u origin feature) - 创建 Pull Request
本项目采用 MIT 许可证。