跳到主要内容
Vexaro Security示例报告
示例报告

我们的评估报告长这样

这是您在项目结束时收到的交付物的脱敏示例节选。下方每条发现均为合成内容,对应一个虚构目标,不含任何真实客户数据。

项目
Web 应用与 API 渗透测试
目标
Acme Cloud Platform(示意)
评估时间窗
为期两周的项目(相对时间,无固定日期)
密级
机密(示意样例)
报告版本
示例 v1.0

执行摘要

在为期两周的灰盒项目中,Vexaro 对 Acme Cloud Platform 可从外部访问的 Web 应用及其支撑 API 进行了评估。测试遵循 OWASP Web Security Testing Guide,并在自动化工具之外辅以人工验证。

整体风险态势:偏高。应用正确实施了身份认证与传输安全,但对象级授权的实施不一致。有两项发现各自均可被利用:计费 API 中的不安全直接对象引用(IDOR),以及文档导入功能中的服务端请求伪造(SSRF)。二者串联后,一名经过认证的低权限用户即可读取其他租户的发票并访问内部云元数据。强化访问控制层并限制出站请求,可消除大部分残余风险。

按严重程度统计的发现
0
严重
2
高
2
中
2
低
2
信息

共 8 项发现,按 CVSS 3.1 评分

范围与方法

本项目涵盖生产环境的 Web 应用、其 REST API、承载它们的云账户,以及可从外部访问的网络边界。测试在限定时间内进行,分别从一个经过认证的低权限账户和一个未认证的基线状态执行。

范围内
  • Web 应用:app.acme.example(认证与匿名流程)
  • REST API:api.acme.example(v1 与 v2 端点)
  • 云账户:对象存储、计算元数据与 IAM 审查
  • 外部网络边界:暴露的服务与 TLS 配置
范围外
  • 拒绝服务与大流量负载测试
  • 社会工程与物理访问
  • 非由目标方运营的第三方 SaaS

方法与参考

测试以人工为主,并对照业界公认框架进行映射,以确保发现可复现、覆盖可审计。

OWASP WSTG

Web Security Testing Guide:驱动应用测试覆盖的测试用例。

OWASP ASVS

Application Security Verification Standard:控制项级别的验证基线。

MITRE ATT&CK

用于刻画真实攻击路径的攻击者战术与技术。

PTES

Penetration Testing Execution Standard:贯穿项目的整体流程。

我们如何评定严重程度

每项发现均以 CVSS 3.1 评分,并转化为业务风险等级。严重程度反映在本环境上下文中的可利用性与影响,而非仅凭基础分。

发现

项目中八项有代表性的发现,按严重程度排序。第一项在下方完整展开,以呈现每条报告条目应有的详尽程度。

编号发现严重程度CVSS状态
ACME-2024-001计费 API 中的 IDOR 暴露其他租户的发票高8.1待处理
ACME-2024-002文档导入中的 server-side request forgery高7.7待处理
ACME-2024-003管理端点上功能级授权被破坏中6.5已修复,已复测
ACME-2024-004工单主题字段中的 stored XSS中5.4待处理
ACME-2024-005弱口令策略允许使用过于简单的凭据低3.7待处理
ACME-2024-006冗长的 API 错误泄露堆栈跟踪与库版本低3.1风险已接受
ACME-2024-007缺失安全响应头(HSTS、CSP、frame-ancestors)信息2.4已修复,已复测
ACME-2024-008会话 Cookie 在签发时缺少 Secure 属性信息2.0待处理

完整展开的示例发现

一项发现,按真实报告中每条条目应有的深度展开:描述、影响、证据、复现、整改与参考。

ACME-2024-001高CVSS 3.1 8.1(高)

计费 API 中的 IDOR 暴露其他租户的发票

发现编号
ACME-2024-001
CVSS 3.1
8.1(高)
向量
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
CWE
CWE-639:Authorization Bypass Through User-Controlled Key

描述

计费 API 通过请求路径中提供的顺序数字标识符返回发票文档。该端点会对调用方进行认证,但从不校验所请求的发票是否属于调用方所在的租户。因此,任何经过认证的用户都可以枚举该标识符,获取属于其他组织的发票,其中包括计费联系人姓名、金额与明细行。

影响

这是一起跨租户的机密性泄露。任一租户中经过认证的低权限用户,只需递增一个整数,便可读取其他所有租户的财务记录。所泄露的数据包含商务条款与个人联系信息,既构成隐私暴露,也构成竞争情报暴露。由于标识符是顺序的,整个发票库可在数分钟内被程序化抓取。

证据

示意性的请求与响应。主机、令牌与数值均为合成数据,并已脱敏。

请求:属于另一租户的发票
GET /v2/invoices/10428 HTTP/1.1
Host: api.acme.example
Authorization: Bearer eyJhbGciOi...REDACTED.SAMPLE.TOKEN
Accept: application/json
响应:200 OK(调用方为租户 7781,发票属于租户 3304)
HTTP/1.1 200 OK
Content-Type: application/json
{
  "invoice_id": 10428,
  "tenant_id": 3304,
  "bill_to": "[REDACTED], Northwind Trading",
  "amount_due": "14,920.00 USD",
  "status": "unpaid"
}'

复现步骤

  1. 1使用任意有效的低权限账户登录应用,并捕获 bearer 令牌。
  2. 2请求您自己的发票,例如 GET /v2/invoices/10427,确认返回 200 响应。
  3. 3将数字标识符递减或递增(.../10428、.../10429),并用您自己的令牌重放该请求。
  4. 4观察到返回了 tenant_id 取值不同的发票,证实缺少对象级授权校验。

整改

在每个请求上强制执行对象级授权:先解析发票,再确认其 tenant_id 与已认证主体的租户一致,方可返回任何数据,否则返回 404。应在集中位置(例如策略层或查询作用域)而非逐个处理器实施该校验,并增加一条回归测试,断言跨租户请求会被拒绝。将顺序标识符替换为不可猜测的标识符可降低枚举风险,但属于纵深防御,不能替代授权校验。

想为您的系统获得这样一份报告吗?.

告诉我们您希望我们测试什么。我们会界定项目范围、与您共同商定规则,并在 NDA 约束下交付同等深度的报告。首次咨询免费。