扫描
Ogma 包含被动和主动扫描器。被动扫描分析捕获的流量。主动扫描发送修改后的请求,并根据响应行为、耗时、反射和基线比较验证安全发现。
被动扫描器
被动扫描器评估已捕获的 HTTP 条目,不发送新流量。
可检测的类别包括:
- SQL、NoSQL、LDAP、模板、反序列化和 XML 错误信息泄露。
- 缺失或薄弱的安全标头。
- Cookie 标记问题。
- CORS 配置错误。
- 暴露的机密信息、私钥、服务账户数据、webhook 和令牌。
- 暴露的源代码管理资料、配置、API 文档或敏感文件。
- JWT 问题,例如
none算法、过长的有效期和 HMAC 使用。 - 响应缓慢和危险的 HTTP 方法。
被动安全发现有助于分级处理,但仍需审查。标头和策略类问题通常取决于应用上下文。
运行被动分析
- 捕获流量。
- 打开实用工具 > 扫描器。
- 选择被动扫描器。
- 点击扫描所有历史记录。
- 在安全发现中查看创建的结果。
在设置 > 扫描器中配置自定义被动规则。
主动扫描器
主动扫描器向请求中的候选位置注入载荷,并验证目标响应。
已实现的检查类别:
| 检查项 | 确认方式 |
|---|---|
| SQL 注入 | 查找 SQL 错误,或在使用时间型载荷时确认可重复的延迟超过测得的基线。 |
| 反射型 XSS | 要求载荷在 HTML 响应中反射,且未进行预期编码。 |
| 路径遍历 / LFI | 要求出现基线响应中不存在的文件内容指标。 |
| 操作系统命令注入 | 要求出现命令输出,或在使用时间型载荷时出现超过测得基线的可重复延迟。 |
| SSTI | 使用结果确定的模板数学载荷,并要求响应中出现计算结果。 |
| SSRF | 要求注入 URL 载荷后出现元数据或服务横幅证据。 |
| 开放重定向 | 要求重定向响应指向注入的外部域名。 |
扫描器明确不会将普通的 200 OK 响应视为漏洞证明。
占位检查
主动检查列表可能包含标记为占位的检查。它们用于清楚展示路线图,但不会创建安全发现。在当前后端中,没有带外验证或应用专用验证时,XXE 和不安全上传不会被自动确认。
全部主动扫描
全部主动扫描通过向以下位置注入载荷来测试近期捕获的请求:
- 查询参数。
- 表单正文参数。
- JSON 值。
- 路径段。
- 启用后选定的标头。
主动扫描前使用测试范围,使流量和结果保持聚焦。
建议工作流:
- 定义并激活测试范围。
- 捕获有代表性的目标流量。
- 从被动分析开始。
- 先对选定请求运行主动扫描,再使用全部主动扫描。
- 在安全发现中审查验证请求和响应证据。
- 移除误报,不要直接报告原始扫描器输出。
证据质量
高质量的扫描器安全发现应回答:
- 测试了哪个参数或输入?
- 使用了哪个载荷?
- 响应发生了什么变化?
- 基线响应中是否没有该行为?
- 问题是否可重复?
- 在 Ogma 中是否有关联证据?
证据不确定时,降低可信度,或先将结果保留为笔记,直到确认。