代理工作流
Ogma 的代理工作流从捕获开始,以可复用的证据结束。核心视图围绕渗透测试人员处理流量的过程组织:发现、检查、测试、确认和报告。
工作区布局
| 分区 | 视图 |
|---|---|
| 概览 | 站点地图、端点、测试范围、筛选器 |
| 代理 | 拦截、HTTP 历史记录、WS / SSE 历史记录、匹配与替换 |
| 测试 | 重放、自动化、工作流、环境 |
| 实用工具 | 扫描器、OAST、编解码器、比较、随机性分析器、竞态 / 请求走私、笔记及令牌工具 |
| 分析 | 搜索、安全发现、导出 |
| 工作区 | 文件、插件 |
HTTP 历史记录
HTTP 历史记录是主要证据表格。使用它可以:
- 检查请求和响应的标头与正文。
- 按方法、主机、路径、状态、来源、标签、正文内容和耗时筛选。
- 为条目添加标签或着色,便于分级处理。
- 将请求发送到重放、自动化、扫描器、安全发现或外部导出。
- 隐藏干扰分析的静态资源,同时保留底层捕获数据。
建议工作流:
- 捕获有代表性的用户流程。
- 筛选到当前激活的测试范围。
- 为身份验证、状态变更、上传、管理和 API 请求添加标签。
- 将高价值请求发送到重放。
- 将已确认的问题连同关联证据整理为安全发现。
拦截
拦截在转发前暂停匹配的流量。
以下情况可使用拦截:
- 在请求到达目标前修改请求。
- 丢弃不需要的请求。
- 在精确的状态转换时观察应用行为。
- 使用受控流量测试请求走私、竞态条件或授权边界。
保持队列在合理规模内。拦截队列满时,Ogma 会转发新流量以保护工作流,而不是无限期阻塞客户端。
匹配与替换
匹配与替换会自动修改通过代理的流量。
常见用途:
- 添加测试标头。
- 替换 Bearer 令牌或 Cookie。
- 强制设置功能标记。
- 规范化干扰分析的标头。
- 注入用于日志关联的跟踪标头。
使用精确的匹配条件。过于宽泛的规则可能破坏无关流量,并使安全发现更难复现。
WebSocket 与 SSE
Ogma 将 WebSocket 和服务器发送事件流量与 HTTP 请求 / 响应行分开跟踪。
使用 WS / SSE 历史记录可以:
- 检查连接元数据。
- 查看消息载荷。
- 搜索流内容。
- 需要重新连接或测试消息变体时,将 WebSocket 流程发送到 WS 重放。
站点地图与端点
尽早并经常使用这些概览视图:
- 站点地图显示捕获的主机 / 路径结构。
- 端点展示从 JavaScript、响应和捕获流量中发现的 API 路径及路由。
这些视图有助于在进入主动测试之前识别尚未测试的区域。
搜索与筛选器
Ogma 支持 HTTPQL 风格的筛选。使用已保存的筛选器进行可重复的分级处理查询。
示例:
text
req.host:example.com AND resp.code:500text
req.path.cont:"/admin" OR req.path.cont:"/api/"text
resp.header["set-cookie"].exists语法参见 HTTPQL 与 StreamQL。
安全发现
安全发现是报告层。一份良好的安全发现应包括:
- 简短标题。
- 严重程度和可信度。
- 受影响的主机、路径或功能。
- 来自 HTTP 历史记录、重放、自动化或 WebSocket 流量的关联证据。
- 复现步骤。
- 影响和修复建议。
扫描器输出只是起点。导出安全发现之前,应关联清晰的请求和响应证据。