OpenBlow关键安全头缺失漏洞深度解析

本文详细披露了OpenBlow举报软件中多个关键HTTP安全头缺失问题,包括CSP、Referrer-Policy等,导致XSS、点击劫持等高风险漏洞,影响能源、外交等敏感领域系统安全。

完整披露:OpenBlow中缺失关键安全头

公告ID: OPENBLOW-2025-003
标题: OpenBlow中缺失关键安全头
日期: 2025-07-12
厂商: OpenBlow (openblow.it)
严重性: 高
CVSS v3.1 基础评分: 8.2(高)
向量: AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N

摘要

OpenBlow举报软件的多个公共部署缺少关键的HTTP安全头。这些配置使用户面临客户端漏洞,包括XSS、点击劫持、API滥用和Referer泄漏。考虑到用户交互的极端敏感性以及涉及的知名机构,这代表了一个严重的系统性缺陷。

受影响的安全头

在所有测试的安装中,以下安全头缺失:

  • Content-Security-Policy
  • Referrer-Policy
  • Permissions-Policy
  • Cross-Origin-Embedder-Policy
  • Cross-Origin-Resource-Policy

此外,第三方Cookie(例如__cf_bm__cfruid)的Cookie标志(SecureHttpOnlySameSite)未得到一致执行。

额外发现:通过HTML的CSP不足

一些OpenBlow安装被发现通过HTML <meta>标签包含内容安全策略(CSP),使用如下结构:

1
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

然而,这种方法不足且不安全,原因如下:

  • 延迟执行: 浏览器仅在解析<head>部分后才应用CSP元标签,允许在CSP激活之前执行内联脚本或注入。
  • 有限功能支持: 关键指令如frame-ancestorsreport-uri在通过<meta>声明时被忽略。
  • 被HTTP覆盖: 如果通过HTTP发送任何CSP头,元传递的策略将被覆盖,造成混淆和配置错误风险。
  • 浏览器不一致性: 并非所有浏览器都以统一或可靠的方式支持通过元标签的CSP。

CSP必须通过HTTP响应头传递,以提供对XSS、数据外泄和内容注入的有意义保护。

根据以下指南:

概念验证

执行:

1
curl -sI -D- https://whistleblowing.eni.com/ | grep -iE 'content-security-policy|referrer-policy|permissions-policy|cross-origin-'

预期结果:响应中未出现此类头。

影响

  • XSS风险: 缺少内容安全策略允许潜在的脚本注入。
  • 点击劫持: 缺少框架限制允许嵌入恶意框架。
  • Referer泄漏: 用户点击外部链接可能泄漏上下文或内部URL。
  • 设备元数据暴露: 没有Permissions-Policy,对摄像头/麦克风等API的访问可能未得到适当限制。
  • 跨源数据泄漏: 缺少COEP/CORP削弱了与外部源的隔离。

这些问题在处理匿名、政治敏感或高风险披露的平台上尤其关键,用户元数据必须不惜一切代价受到保护。

CVSS评分理由

  • 攻击向量: 网络(N)
  • 攻击复杂度: 低(L)
  • 所需权限: 无(N)
  • 用户交互: 需要(R)
  • 范围: 未改变(U)
  • 机密性: 高(H)
  • 完整性: 低(L)
  • 可用性: 无(N)

CVSS v3.1 基础评分: 8.2(高)

受影响系统示例

Google Dork

简单搜索允许任何人枚举OpenBlow实例:

1
intext:"Powered by OpenBlow"

这种被动指纹识别有助于侦察和定位易受攻击的端点。

缓解措施

所有OpenBlow部署应强制执行以下头:

1
2
3
4
5
Content-Security-Policy: default-src 'self'; script-src 'self'; frame-ancestors 'none';
Referrer-Policy: no-referrer
Permissions-Policy: camera=(), microphone=(), geolocation=()
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Resource-Policy: same-origin

此外:

  • 所有Cookie,包括来自CDN或负载均衡器的Cookie,应标记为Secure; HttpOnly; SameSite=Strict

厂商状态

截至2025-07-12无响应

时间线

  • 2025-03-06 - 发现漏洞
  • 2025-03-10 - 联系厂商
  • 2025-07-12 - 公开披露

标准与参考

关键HTTP安全头的缺失不仅是最佳实践问题,而且是多个标准和漏洞分类系统中公认的安全配置错误:

参考

免责声明

本公告出于公共安全和透明度的利益发布。

未尝试利用。测试是对公开可用部署非侵入性进行的。

如需协调,请联系我:tifa.lockhart () atomicmail io

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计