微软|Node.js 易受新型 HTTP 请求夹带技术攻击

出品|开源中国
作者|局长
PortSwigger 网站近日了 Node.js 存在两个(HTTP request smuggling , 简称 HRS)攻击漏洞 , 并指出其中一个漏洞似乎使用了新的 HRS 技术 。
据介绍 , 这些漏洞由 Mattias Grenfeldt 和 Asta Olofsson 在瑞典 KTH 皇家理工学院计算机科学学士学位论文研究中发现 。 Grenfeldt 称 , 刚开始他们在六个开源 Web 服务器和六个开源代理中寻找 HTTP 请求夹带漏洞 。 Node.js 就是其中被调查的项目之一 , 但他们当时没有发现任何问题 。 经过一段时间后 , 在报告项目中发现的其他问题时 , 他们偶然发现了 Node.js 的这两个漏洞 。
HTTP 请求夹带技术是由一个或多个用户同时对目标网站服务器发起大量请求 , 通过构造特殊结构请求 , 干扰网站服务器对请求的处理(主要是干扰 HTTP 请求序列) , 从而实现攻击目标 。
漏洞之一 CVE-2021-22959 使用了常见的 HRS 技术 , 它通过利用 HTTP 请求中 header 允许存在空格的特性 , 从而进行 HTTP 请求夹带攻击 。 因为 HTTP 解析器接受在 header 名称之后和冒号之前带有空格的请求 。
Grenfeldt 解释道 , 这种 HRS 技术十分常见 , 在这种情况下 , Node.js 会将 ‘Content-Length : 5’ 解释为 ‘Content-Length: 5’ , 如果与忽略此类 header 且未经修改地转发它们的代理结合使用 , 则有可能会被用于 HRS 攻击 。
而另一个漏洞 CVE-2021-22960 似乎使用了新的 HRS 技术 , 其通过结合代理中的错误行终止和 Node.js 中块扩展的错误解析 , 从而进行 HTTP 请求夹带攻击 。
Grenfeldt 和 Olofsson 发现易受攻击的代理往往会查找单个换行符 (LF) 来终止包含块大小的行 , 但没有像往常一样检查 LF 之前是否有回车 。
“就在此行终止之前是很少使用的块扩展功能的地方 。 在块扩展中 , 开发者可以在块大小之后指定额外的参数 , 例如‘a=b’ 。 然而 , 很少在系统中实现对此的解析 , 而许多情况会允许该区域中的任何字节“ , Grenfeldt 继续解释道 。
【微软|Node.js 易受新型 HTTP 请求夹带技术攻击】最后 , Grenfeldt 和 Olofsson 于 6 月 19 日至 20 日反馈了这些问题 , Node.js 于 10 月 12 日发布了修复程序 。
相关经验推荐
- 微软|三星Galaxy S22全系涨价?背后原因显而易见
- 微软|吴京助力中兴!重新定义新国货,携领努比亚打造行业TWS新高度
- 微软|微软改写全球科技行业格局,游戏成主角
- Google|我慌了,微软、Google 要把办公室做成「让人爱上工作」的样子
- 微软|微软允许我们使用盗版的Windows?原因不是禁止不了,而且它故意的
- 微软|微软在下一盘大棋,我们务必小心!
- 华为|即使华为上市,再用十年时间追赶,也不可能超过微软和苹果
- 华为|打脸!华为在美国,用专利把英特尔、苹果、微软、高通打败了
- 微软|微软收购动视暴雪背后,仍是打着“元宇宙”旗号的游戏割据战
- VR|微软收购暴雪,元宇宙能否带动第二轮VR热潮?国产厂商也在行动
