**
漏洞原理
**
CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n,%0a)
Windows:使用CRLF表示行的结束
Linux/Unix:使用LF表示行的结束
MacOS:早期使用CR表示,现在好像也用LF表示行的结束
在HTTP报文结构中,状态行和首部中的每行都是以CRLF结束,首部和主体之间由一个空格行进行分割。或者理解为最后一个字段有两个CRLF,首部和主体由两个CRLF分隔。
CRLF漏洞的原理还是未对用户的输入做验证,导致被输入恶意字符。当攻击者在请求行或者首部中的字段注入恶意的CRLF,就可以注入一些首部字段和报文主体,并在响应中输出,所以称为HTTP响应拆分漏洞。
**
漏洞检测
**
修改HTTP参数或URL,注入恶意的CRLF,查看构造的恶意数据是否在响应头中输出。
在请求中输入
在响应中发现
**
漏洞修复
**
过滤行结束符,避免输入的数据污染其他 HTTP 首部字段。
参考:https://www.jianshu.com/p/2f2e311e797b