网络空间安全实验教程
上QQ阅读APP看书,第一时间看更新

1.1.3 CRLF注入攻击

CRLF(Carriage Return Line Feed)注入,CRLF是“回车+换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP内容并显示出来。所以,一旦恶意用户能够控制HTTP消息头中的字符,注入一些恶意的换行,这样恶意用户就能注入一些会话Cookie或者HTML代码,所以CRLF注入又称为HTTPResponse Splitting,简称HRS。

常见CRLF注入攻击举例如下。

(1)通过CRLF注入构造会话固定漏洞

请求参数中插入新的Cookie:

服务器返回:

(2)通过CRLF注入消息头引发XSS漏洞在请求参数中插入CRLF字符:

服务器返回:

原因:服务器端没有过滤\r\n,而又把用户输入的数据放在HTTP头中,从而导致安全隐患。