ynori7/draque

GitHub: ynori7/draque

一款基于日志与规范重建 API 端点并生成测试输入的智能安全工具。

Stars: 0 | Forks: 0

# Draque 以著名私掠者和探险家弗朗西斯·德雷克爵士(又名 El Draque)命名,此安全探索工具允许您为安全测试目的探索 API 生态系统。 功能: - 通过 Wayback Machine 的 API 查找历史端点 - 通过日志文件查找端点 - 查找并理解 Swagger 文档中的端点 - 从所有来源获取所有已知端点,按路由分组,收集相关 ID,并自动推断相似端点的有效输入数据。 ## 用法 ### CLI 工具 Draque 工具是一个交互式 UI,允许您从各种来源扫描数据、合并它们并分析结果。 用法: ``` go build -o draque cmd/draque/main.go ./draque ``` 该工具支持以下命令: - wayback:添加 Wayback Machine 源(域名 + 可选路径前缀) - logs:添加访问日志源(文件路径 + 格式模式) - swagger:添加 Swagger/OpenAPI 规范源(文件路径) - status:显示已配置的源和扫描摘要 - scan:获取并合并所有已配置的源(带进度) - analyze:显示扫描结果的统计信息(仅扫描后可用) - search:在输入时实时搜索端点并查看详情(仅扫描后可用) - export:将每个端点模板的一个代表性 URL 导出到文件(每行一个)(仅扫描后可用) - reset:清除所有源和扫描数据以重新开始(仅扫描后可用) ### 库 Draque 可以作为一个 Go 库来以编程方式扫描来源并检索合并的端点模板。 **示例用法:** ``` package main import ( "fmt" "log" "github.com/ynori7/draque" ) func main() { d := draque.New( // Fetch historical URLs from the Wayback Machine for example.com under /api draque.WithWayback("example.com", "/api"), // Parse all access log files in a directory; adjust the format pattern to match your log format draque.WithLogDirectory("/var/log/myapp", "{host} {method} {path} {status}"), // Parse all Swagger/OpenAPI specs (.json, .yaml, .yml) in a directory draque.WithSwaggerDirectory("/path/to/swagger/specs"), ) templates, err := d.Scan() if err != nil { log.Fatal(err) } for _, t := range templates { fmt.Println(t) } } ``` `Scan` 获取所有已配置的来源,归一化 URL,并返回一个去重后的 `domain.EndpointTemplate` 值切片——每个唯一路由模式一个,并将推断的路径参数代回。 **其他选项:** | 选项 | 描述 | |---|---| | `WithWayback(domain, prefix)` | 为给定域名和可选路径前缀从 Wayback Machine 获取 URL。 | | `WithLogFile(path, format)` | 使用给定格式模式解析单个访问日志文件。 | | `WithLogDirectory(path, format)` | 解析目录中的所有常规文件作为访问日志。 | | `WithSwagger(path)` | 解析单个 Swagger/OpenAPI 规范文件(JSON 或 YAML)。 | | `WithSwaggerDirectory(path)` | 解析目录中的所有 `.json`、`.yaml` 和 `.yml` 文件作为 Swagger 规范。 | | `WithErrorOnFailure(true)` | 在第一个来源失败时立即返回,而不是跳过它。 |
标签:API安全, API安全分析, API测试, DevSecOps, EVTX分析, Go语言, JSON输出, OpenAPI, Swagger解析, Wayback Machine, Web安全, XML 请求, 上游代理, 交互式UI, 历史端点, 反汇编, 安全开发, 安全扫描, 安全探索工具, 安全测试, 开源安全工具, 接口重构, 攻击性安全, 日志审计, 时序注入, 测试输入生成, 程序破解, 端点情报, 端点模板, 蓝队分析, 访问日志, 输入数据推断, 逆向工程平台