2.条件竞争漏洞

条件竞争漏洞

postMessage的客户端竞争条件

Summary

  • AppCache可以被利用来强制浏览器加载后备的HTML页面,允许像Cookie填充(stuffing)这样的攻击,迫使出错并泄露敏感的URL。在负责任披露后,这个问题已经在各大浏览器中得到修复。

  • 对AWS S3和Google Cloud等云存储的上传策略(upload policy)实现不当,可能允许攻击者覆盖任何文件或访问根目录。自定义的正则表达式策略也容易被绕过。

  • frame之间通过postMessage进行的通信可能导致沙箱域的XSS漏洞、通过复杂规则集提取数据以及客户端竞争条件(如果消息未被正确验证和处理)等漏洞。像postMessage-tracker这样的工具可以帮助审计这些消息流。

  • 常见的JS框架如jQuery、Raven、Rollbar等会阻碍对postMessage监听器的分析,需要使用一些变通方法。

Step

  • AppCache技术复现需要准备恶意的manifest文件,并让受害者访问设置了该文件路径的页面,以便强制浏览器加载后备HTML页面。

  • 针对上传策略漏洞的复现,需要通过接口获取带有漏洞的策略签名,然后构造恶意上传请求绕过限制。

  • postMessage通信的测试需要开发浏览器扩展或利用多frame页面,在不同域之间发送消息,并分析返回结果判断是否存在问题。

  • 框架对postMessage监听的影响可以通过在同一页面引入该框架与postMessage通信的代码进行复现。

Impact

  1. AppCache漏洞能够绕过同源策略,可能导致敏感信息泄露、页面劫持等后果。

  2. 上传策略绕过使攻击者能够未授权访问或修改后端存储中的文件,危害数据安全。

  3. postMessage通信过程中的验证缺陷可能被利用进行XSS攻击、CSRF攻击、信息窃取等。

  4. 框架对postMessage监听的影响会减弱安全测试的效果,导致潜在问题被忽略。

扩展

Paper

postMessage的客户端竞争条件 postMessage的客户端竞争条件

Last updated