程序员征服安全:分享与学习系列 - CRLF 注入

在阅读此类博客或文章时,标点符号能起到辅助作用。例如,句号告诉读者句子在哪里结束,而逗号则用于分隔列表中的条目,或通过强制停顿来帮助区分不同的观点。对于一篇优秀的博客(比如这一篇)来说,标点符号几乎是隐形的,它们只是我们多年前就已习得的标准化底层逻辑的一部分。
但如果黑客侵入这篇文章,并在错误的地方插入奇怪的标点符号会怎样?就像这样:
没有,甚至!改变。文本。它?可以。使它!更?困难。去?处理!信息!
这基本上就是 CRLF 注入攻击的原理。CRLF 代表回车(Carriage Return)和换行(Line Feed),它们既可以单独使用,也可以组合使用来标记一行的结束。如果攻击者能够将 CR 或 LF 代码插入到现有应用程序中,有时就能改变其行为。与大多数攻击相比,这种攻击的效果较难预测,但对目标组织造成的危害同样不容小觑。
在本期节目中,我们将学习:
- 攻击者如何触发 CRLF 注入
- 为什么 CRLF 注入很危险
- 修复此漏洞的技术手段。
攻击者如何触发 CRLF 注入?
将 CRLF 字符注入现有代码并试图产生特定结果相当困难,但也并非不可能。其难度在于,攻击者需要根据目标系统的操作系统和其他因素,使用不同的 CRLF 组合。例如,现代 Windows 系统需要 CR 和 LF 共同作用来结束一行,而在 Linux 上,仅需 LF 代码即可。HTTP 请求则始终需要精确的 CRLF 代码来结束一行。
除了 CRLF 攻击难以实施且结果难以预测之外,它们的启动方式与其他类型的注入攻击大同小异。恶意用户只需在网站或应用程序中任何允许输入的地方输入数据,只不过他们输入的是 CRLF 代码,而不是(或在)正常输入数据之后。
例如,攻击者可以在 HTTPS 标头末尾输入代表回车的 ASCII 码(%0d),后跟代表换行的 ASCII 码(%0a)。整个查询看起来就像这样:
https://validsite.com/index.php?page=home%0d%0a
如果数据未经过滤或清理,上述代码可能会导致目标应用程序或网站出现异常行为。
为什么 CRLF 注入很危险?
虽然 CRLF 注入攻击不如大多数攻击那样精确,但在某些情况下却相当危险。在轻微的情况下,添加额外的行会扰乱日志文件,这可能会触发自动网络安全防御系统,向管理员发出虚假警报。然而,这可能被用于分散安全团队的注意力,从而掩盖同时发生的实际入侵行为。
但 CRLF 攻击也可能造成直接破坏。例如,如果应用程序被设计为接收命令并搜索特定文件,在查询中添加 CRLF 代码可能会导致应用程序将该进程显示在屏幕上,而不是将其隐藏,这可能会为攻击者提供有价值的信息。
CRLF 注入还可用于发起所谓的“响应拆分攻击”(Response Splitting Attack),即利用行尾代码将有效的响应拆分为多个部分。这可以让黑客控制 CRLF 代码之后的标头,进而注入额外代码。它还可以用来打开一个缺口,让攻击者能够完全注入自己的代码,并可能在 CRLF 攻击所拆分的部分之后的任何行上触发其他形式的攻击。
消除 CRLF 注入漏洞
如果说本系列文章有一个核心信息,那就是:永远不要信任用户输入。我们在本系列中讨论的大多数漏洞在某种程度上都涉及用户输入区域,CRLF 注入漏洞也不例外。
在用户可以输入数据的任何地方,都必须应用过滤器,以防止注入可能被应用程序或服务器误解的未经授权的代码。对于 CRLF 攻击,锁定 HTTP 标头尤为重要,但也不能忽视 GET 和 POST 参数,甚至是 Cookie。防止 CRLF 代码触发进一步注入的一个绝佳方法是,对发送回用户浏览器的所有内容进行 HTML 编码。
关于 CRLF 注入的更多信息
如需深入了解,您可以查看 OWASP 关于 CRLF 注入 的说明。您还可以通过 免费演示 来测试您新掌握的防御知识,该演示平台旨在将网络安全团队培养成顶尖的网络战士。若想了解更多关于攻克此漏洞及其他各类威胁的信息,请访问 Secure Code Warrior 博客。
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)