1、 漏洞简介及成因
CRLF时“回车+换行”(\r\n)的简称。
HTTP Header与HTTP Body时用两个CRLF分隔的,浏览器根据两个CRLF来取出HTTP内容并显示出来。
通过控制HTTP消息头中的字符,注入一些恶意的换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行。
2、 漏洞复现
访问页面,抓包
请求加上/%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>
由于页面重定向,并没有弹窗。
3、 漏洞修复
Nginx的配置文件/etc/nginx/conf.d/error1.conf修改为使用不解码的url跳转。