报告内容
执行摘要
在报告开头呈现整体风险,以及各严重程度的发现数量。
发现汇总表
每个发现的风险等级、状态和简短说明。
已验证的漏洞利用
对每个发现的详细分析,附有利用请求及其返回的证据。
修复方法
每个发现的根本原因和修复方法,并附可重复执行的复现步骤。
带注释的发现
逐步解读一个发现
展示报告如何把一个发现从测试目标一路跟到修复方案。每一步都标注了它在完整报告中的页码。
- 目标
vulnbank.org,一个在线演示银行
一款为安全培训而故意设置漏洞的网上银行应用及其 API,在真实环境中测试。执行摘要开篇即给出其整体风险:严重。
报告第 2 页 - 结果
57 个发现,按风险排序
42 个已确认的漏洞(21 个严重、14 个高危、7 个中危),另有 12 个需要进一步调查的潜在问题和 3 项加固措施。
报告第 4 页 - 发现汇总表
已列出并跟踪
发现汇总表列出了每个问题的风险等级、状态和简短说明。这个问题为严重,且仍未关闭。
报告第 6 页 - 发现
严重:JWT 签名未经验证
服务器在接受访问令牌时没有检查其签名,因此任何人都能伪造管理员令牌。而且共享密钥 secret123 也很容易被猜到。
报告第 63 页 - 根本原因
令牌只解码,从不验证
报告将漏洞追溯到调用 jwt.decode 时关闭了签名验证。服务器因此信任令牌中的所有声明,包括 is_admin。
报告第 63 页 - 证据
证明漏洞的请求
没有令牌时,/admin/create_admin 返回 401。使用伪造签名的伪造令牌,同一请求成功创建了管理员账户,另一个请求则删除了一个用户账户。
报告第 65 页 - 验证
所有尝试汇总于一张表
逐一列出所用的令牌、其签名和结果。响应中的 deleted_by 字段显示的是伪造令牌中的用户:服务器信任了它。
报告第 65 页 - 修复
更换密钥,验证每个令牌
将 secret123 替换为强随机密钥,在每个请求中检查签名和过期时间,并从数据库加载用户,而不是信任令牌。
报告第 66 页
代理如何判断
为什么这是真正的风险
扫描器会报告所有匹配规则的内容。代理在报告之前,会先确认一条线索确实会造成实际危害,并逐一排除无害的解释。以下是它对 vulnbank.org 上一个发现的推理过程。



