WAFFLED: Exploiting Parsing Discrepancies to Bypass Web Application Firewalls
该论文提出了一种名为"WAFFLED"的创新方法,通过利用 HTTP 解析差异(如头部和 Body 段落的解析不一致)成功绕过了 AWS、Cloudflare 等 5 款主流 Web 应用防火墙(WAF),并开发了 HTTP-Normalizer 工具以修复此类漏洞。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文讲述了一个关于网络安全的有趣故事,就像是在讲“猫和老鼠”的游戏,但这次老鼠(黑客)发现了一个让猫(防火墙)打瞌睡的奇怪方法。
我们可以把这篇论文的核心内容想象成一场发生在海关(WAF,Web 应用防火墙)和海关后的仓库(Web 应用程序)之间的“语言误会”游戏。
1. 背景:海关与它的任务
想象一下,互联网上的网站就像是一个个巨大的仓库,而WAF(Web 应用防火墙)就是守在仓库门口的超级海关。
- 它的工作:检查所有进来的包裹(HTTP 请求)。如果包裹里藏着炸弹(恶意代码,比如 SQL 注入或 XSS 攻击),海关就会把它扣下,不让它进仓库。
- 它的规则:海关有一套厚厚的《操作手册》(RFC 标准),规定包裹必须怎么包装、标签怎么写。
2. 问题:海关和仓库的“方言”不通
以前,黑客想绕过海关,通常是把炸弹包在糖果纸里(加密或混淆),让海关看不出来。但现在的海关很聪明,能识破这些花招。
这篇论文发现了一个更狡猾的方法:利用“语言翻译”的差异。
- 海关(WAF):它看包裹时,可能有点“近视”或者“耳背”,对某些奇怪的包装方式理解得比较死板,或者理解错了。
- 仓库(Web 应用):它看同样的包裹时,理解得比较灵活,或者遵循的是另一套“方言”。
核心漏洞:当海关看到包裹说“这没问题,放行”时,仓库看到同一个包裹却说“哦,这里面藏着炸弹,我要执行它!”
这就是解析差异(Parsing Discrepancies)。黑客不需要把炸弹藏起来,只需要把包裹的包装纸稍微弄皱一点点,让海关和仓库对“这到底是个什么包裹”产生不同的理解。
3. 实验:用“ fuzzing"(模糊测试)找漏洞
研究人员(也就是这篇论文的作者们)发明了一个自动化的“捣蛋机器人”(Fuzzer)。
- 这个机器人会制造成千上万个包裹,每个包裹都稍微有点“不对劲”:
- 比如在包裹的标签上多写一个看不见的空格。
- 比如把“边界线”(用来分隔包裹内容的线)的位置稍微挪动一下。
- 比如在 XML 或 JSON 数据里插入一些奇怪的字符。
- 然后,机器人把这些包裹发给 5 种著名的海关(Cloudflare, AWS, Azure, Google Cloud Armor, ModSecurity),看看谁能放行。
结果令人震惊:
他们发现了 1207 种 不同的方法,能让这些著名的海关“打瞌睡”,放行那些本该被拦截的恶意包裹。而且,这些包裹进入仓库后,仓库都能完美地“拆开”并执行里面的恶意代码。
4. 现实世界的“通用语”
为了证明这不仅仅是实验室里的把戏,研究人员还去现实世界做了调查。
他们发现,90% 以上的网站,其实对包裹的包装格式(比如 multipart/form-data 和 application/json)并不挑剔。
- 比喻:就像你给仓库寄信,海关以为你寄的是“挂号信”,但仓库其实把“挂号信”和“普通平信”混在一起处理了。
- 结论:这意味着,黑客只要学会这种“让海关和仓库产生误会”的技巧,就能攻破绝大多数网站。
5. 解决方案:给海关配一个“翻译官”
既然问题出在“理解不一致”,那解决办法就是让海关变得极其严格和标准。
作者开发了一个叫 HTTP-Normalizer 的工具,你可以把它想象成一个超级严格的“翻译官”或“质检员”:
- 它的作用:在包裹到达海关之前,先由它检查。
- 它的规则:它只接受完全符合《操作手册》(RFC 标准)的包裹。
- 如果包裹包装歪了?扔掉!
- 如果标签写得模棱两可?扔掉!
- 如果只有完全标准的包裹,它才会把它整理得整整齐齐,再交给海关。
- 效果:经过这个“翻译官”处理后,所有试图利用“语言差异”的恶意包裹都会被标准化或拦截,海关和仓库看到的就完全一样了,漏洞也就堵上了。
总结
这篇论文告诉我们:
- 安全不仅仅是“藏好炸弹”:即使你老老实实地把炸弹放在明处,只要你能让海关和仓库对“这是什么”产生分歧,你就能混进去。
- 标准很重要:很多大公司的防火墙因为对标准的理解有细微差别,导致被钻了空子。
- 有药可救:只要强制所有系统严格遵守统一的标准(就像作者提出的工具那样),这种漏洞是可以被彻底修复的。
简单来说,这就好比黑客发现海关和仓库对“什么是合法的包裹”有不同的理解,于是他们专门制造一些“看起来像合法但又不完全合法”的包裹,骗过海关,让仓库执行恶意操作。而作者提出的解决办法,就是给海关配一个“死板”的翻译官,确保所有包裹在进入海关前都变得一模一样,让黑客无机可乘。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。