CRLF注射剂定义


CRLF指特殊字符元素“回车”和“换行”。这些元素嵌入在HTTP头文件和其他软件代码中,以表示行尾(EOL)标记。许多互联网协议,包括MIME(电子邮件),NNTP(新闻组),更重要的是HTTP,使用CRLF序列将文本流分离成离散的元素。Web应用程序开发人员根据CRLF所在的位置分割HTTP和其他标头。当攻击者能够将CRLF序列注入到HTTP流中时,会发生漏洞攻击。通过引入这种意外的CRLF注入,攻击者能够恶意利用CRLF漏洞来操纵Web应用程序的功能。

CRLF注射的更正式名称是CRLF序列的不适当中和。由于CRLF注入经常用于分割HTTP响应,因此也可以将其指定为HTTP响应拆分或HTTP头中CRLF序列的不当中和。

CRLF注射的关键概念

CRLF注入是一种软件应用程序编码漏洞,当攻击者在不期望的地方注入CRLF字符序列时就会发生这种漏洞。当使用CRLF注入来分割HTTP响应头时,它被称为HTTP响应分裂(HTTP Response Splitting)。数据输入导致的CRLF注入漏洞未被中和,错误地被中和或以其他方式未经处理。

攻击者提供带有CRLF注入功能的特制文本流,以诱骗Web应用程序执行意外和可能有害的操作,范围从中等到高度不等。攻击者通过注入CRLF序列来利用CRLF注入漏洞,以便分割文本流以嵌入Web应用程序不期望的文本序列。这些意外的CRLF注射可能会导致安全漏洞并造成物质损害。

CRLF注入在应用层利用安全漏洞。例如,通过在HTTP响应中利用CRLF注入缺陷,攻击者可以修改应用程序数据,损害完整性,并能够利用以下漏洞:
  • XSS或跨站点脚本漏洞
  • 代理服务器和Web服务器缓存中毒
  • 网站污损
  • 劫持客户的会话
  • 客户端Web浏览器中毒
通过实例解释CRLF注射

让我们来看一下CRLF攻击的一个最基本的例子,即CRLF注入如何造成破坏:在日志文件中添加假条目。假设一个易受攻击的应用程序接受unsanitized或不适当的中和数据并将其写入系统日志文件。攻击者提供以下输入:



因为这个错误是假的,系统管理员可能会浪费大量的时间来解决一个不存在的错误。攻击者可以使用这种类型的木马来分散管理员,同时攻击其他地方的系统。

说明CRLF注入如何导致严重危害的另一种方法是通过接受文件名作为用户输入的应用程序,然后对该文件执行相对无害的命令,如“ls -a ***”如果应用程序易受CRLF注入是由于不恰当的中和或未经处理的数据输入,攻击者可以提供以下输入:



如果应用程序在linux / unix系统上以root权限运行,则此CRLF注入攻击可能会擦除整个文件系统。

防止CRLF注射

幸运的是,CRLF注射很容易预防:
  • 始终遵循永不相信用户输入的规则。
  • 对所有用户提供的数据进行消毒和中和处理,或者正确编码HTTP标头中的输出,否则用户可能会看到输出,以防止注入CRLF序列及其后果。 
    天使天使 


请评论,如果你需要问什么 

================================================== =====================

天使 ::谢谢:: 天使

请订阅我们的YouTube频道:: 天使

www.youtube.com/c/Pentestingwithspirit 


原文链接:http://forum.sqliwiki.com/showthread.php?tid=4224