1、CRLF漏洞简介
RLF是”回车+换行”(\r\n)(编码后是%0D%0A)的简称,在HTTP中,HTTP Header和HTTP Body是用两个CRLF来分割的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。
键盘上的回车键(Enter)就可以执行该操作。但是不同的操作系统,行的结束符是不一样的:
Windows:使用CRLF表示行的结束
Linux/Unix:使用LF表示行的结束
MacOS:早期使用CR表示,现在好像也用LF表示行的结束
同一文件在不同操作系统中打开,内容格式可能会出现差异,这是行结束符不一致导致的。
所以,一旦我们能够控制HTTP 消息头中的字符,但是如果对输入过滤不严,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,将恶意语句注入到http请求数据包中,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。
CRLF漏洞可以造成Cookie会话固定和反射型XSS(可过waf)的危害,注入XSS的利用方