看看 Web Agentic Deep Scan 报告是什么样子

这是一份针对 VulnBank(一款故意设置漏洞的银行应用)及其 API 的 202 页评估报告。它展示了每个发现如何通过可重现的请求加以验证,并追溯到根本原因。

目标
VulnBank Web 应用和 API
扫描
Web Agentic Deep Scan
篇幅
202 页
结果
整体风险:严重

基于故意设置漏洞的演示目标,不含任何客户数据。

发现详细分析发现汇总封面和风险等级

报告内容

执行摘要

在报告开头呈现整体风险,以及各严重程度的发现数量。

发现汇总表

每个发现的风险等级、状态和简短说明。

已验证的漏洞利用

对每个发现的详细分析,附有利用请求及其返回的证据。

修复方法

每个发现的根本原因和修复方法,并附可重复执行的复现步骤。

带注释的发现

逐步解读一个发现

展示报告如何把一个发现从测试目标一路跟到修复方案。每一步都标注了它在完整报告中的页码。

  1. 目标

    vulnbank.org,一个在线演示银行

    一款为安全培训而故意设置漏洞的网上银行应用及其 API,在真实环境中测试。执行摘要开篇即给出其整体风险:严重。

    报告第 2 页
  2. 结果

    57 个发现,按风险排序

    42 个已确认的漏洞(21 个严重、14 个高危、7 个中危),另有 12 个需要进一步调查的潜在问题和 3 项加固措施。

    报告第 4 页
  3. 发现汇总表

    已列出并跟踪

    发现汇总表列出了每个问题的风险等级、状态和简短说明。这个问题为严重,且仍未关闭。

    报告第 6 页
  4. 发现

    严重:JWT 签名未经验证

    服务器在接受访问令牌时没有检查其签名,因此任何人都能伪造管理员令牌。而且共享密钥 secret123 也很容易被猜到。

    报告第 63 页
  5. 根本原因

    令牌只解码,从不验证

    报告将漏洞追溯到调用 jwt.decode 时关闭了签名验证。服务器因此信任令牌中的所有声明,包括 is_admin。

    报告第 63 页
  6. 证据

    证明漏洞的请求

    没有令牌时,/admin/create_admin 返回 401。使用伪造签名的伪造令牌,同一请求成功创建了管理员账户,另一个请求则删除了一个用户账户。

    报告第 65 页
  7. 验证

    所有尝试汇总于一张表

    逐一列出所用的令牌、其签名和结果。响应中的 deleted_by 字段显示的是伪造令牌中的用户:服务器信任了它。

    报告第 65 页
  8. 修复

    更换密钥,验证每个令牌

    将 secret123 替换为强随机密钥,在每个请求中检查签名和过期时间,并从数据库加载用户,而不是信任令牌。

    报告第 66 页

代理如何判断

为什么这是真正的风险

扫描器会报告所有匹配规则的内容。代理在报告之前,会先确认一条线索确实会造成实际危害,并逐一排除无害的解释。以下是它对 vulnbank.org 上一个发现的推理过程。

  1. 第 1 步

    为什么交易页面无需登录就有响应?

    GET /transactions/123456 返回了 200,并给出了该账户的完整交易历史。该请求既没有令牌也没有 Cookie。

    报告第 41 页
  2. 第 2 步

    这个端点只是对令牌检查比较宽松吗?

    伪造的 Bearer 令牌、伪造的会话 Cookie 和随意编造的 API 密钥都得到了同样的 200。该端点完全忽略身份验证。

    报告第 42 页
  3. 第 3 步

    任何账户都可以吗?

    是的。每个账号都返回了数据,甚至包括 admin 和 test 这样的单词。仅 test 账户就返回了 1,499 笔交易。

    报告第 42 页
  4. 第 4 步

    为什么会这样?

    该路由从 URL 中读取账号,并直接用它查询数据库。没有任何检查确认该账户属于调用者。

    报告第 42 页
  5. 第 5 步

    那么,这是风险吗?

    是的,严重(Critical)。互联网上的任何人都能读取任意用户的交易金额、日期和交易对方,并遍历账号把它们全部收集起来。

    报告第 41 页
  6. 第 6 步

    如何修复?

    要求有效登录,未登录时返回 401。然后检查该账户是否属于调用者,否则返回 403。报告列出了用于确认修复的请求。

    报告第 43 页

想为您自己的应用获取这样的报告?

预约演示,我们将为您讲解对您的移动应用、Web 应用或 API 的扫描。