CRLF注入漏洞(响应截断)攻击实战


前言

OMG,忙得头皮发麻,这两天渗透任务有点多,所以都忘了记录博客,正好昨天挖到一个CRLF漏洞,是一个很少见的漏洞,但是危害性挺有意思,所以写来记录一下。(这几天绕安恒WAF,刚开始觉得有希望,淦了两天,今天放弃了……)


一、漏洞概述

CRLF是CR和LF两个字符的拼接,它们分别代表”回车+换行”(\r\n)“,全称为Carriage Return/Line Feed”,十六进制编码分别为0x0d和0x0a,URL编码为%0D和%0A。CR和LF组合在一起即CRLF命令,它表示键盘上的"Enter"键,许多应用程序和网络协议使用这些命令作为分隔符。

而在HTTP协议中,HTTP header之间是由一个CRLF字符序列分隔开的,HTTP Header与Body是用两个CRLF分隔的,浏览器根据这两个CRLF来取出HTTP内容并显示出来。

所以如果用户的输入在HTTP返回包的Header处回显,便可以通过CRLF来提前结束响应头,在响应内容处注入攻击脚本。因此CRLF Injection又叫HTTP响应拆分/截断(HTTP Response Splitting)简称HRS。

二、漏洞利用

任务目标那么多,随机抽一个幸运儿:
在这里插入图片描述
打开网站,随机找功能点,随便点了一下,点到一个网页,挺有意思,是个类似校报的界面:
在这里插入图片描述

1、在url上添加参数d,然后打个payload进去:

https://ip/xxx/xxx?c=xxx&d=%c4%8d%c4%8aHello666: Me_Too

BurpSuite抓包:
在这里插入图片描述
从上图可以看出,我们用Get请求发的请求包,加了一个d参数,参数的内容居然能在响应包中回显,这就有意思了,说明响应包我们是可以随机控制了。

比如说,可以自己给自己设cookie,搞个会话固定:

https://ip/xxx/xxx?c=xxx&d=%c4%8d%c4%8aHello666: Me_Too%c4%8d%c4%8aSet-Cookie:xxx

Tips:这里的%c4%8d%c4%8a就是换行回车的意思,类似于%0d%0a,是URL编码。

看下图就能看出效果,自己加的cookie已经成功出现在响应包里.
在这里插入图片描述
除了这些之外,CRLF还可以造成XSS攻击和构造一个双重响应的响应包,但是很遗憾…… 这个站加装了个安恒的WAF,我绕了半天绕不去,只能放弃了。

在这里插入图片描述
但是,如何用CRLF打XSS的方法还是需要了解,正常来说,先关掉XSS-protection,0就是关,1就是开。因为CRLF是可以修改响应包的,所以只要添加一个X-XSS-Protection就行。
在这里插入图片描述
后面的内容,我就用网上的截图来记录吧,因为大致思路都是一样的:

XSS:
当我们输入的是:

%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>

则返回包会变为:

HTTP/1.1 200 OK

Date:Fri,26Jun 2018 17:00:05 GMT

Content-type:text/html

Contet-Length:155

Connection:close

Location:

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

浏览器会根据CRLF将http包分为header和body,然后将body中的内容执行,从而达到XSS。如果遇到XSS过滤的情况我们还可以在httpheader中注入X-XSS-Protection:0,可绕过浏览器的过滤规则实现XSS弹窗显示。
但因为这里有WAF,所以演示不了,等以后找到了个没有加防护的站之后,再做补充。o(╥﹏╥)o

而双重响应的例子就看下面这个图吧,道理都一样,只要自己加一个响应状态就可以。
在这里插入图片描述

挖掘技巧:从输入和输出入手,只要请求url后面加自定义参数,再跟payload中的值,再从响应包中检索是否存在,如果有说明存在漏洞,没有则无。打算自己写个脚本,今晚有空可以写写。


修复方法

1、最简单的方法,装WAF……
2、对用户的数据进行合法性校验,对特殊的字符进行编码,如<、>、’、”、CR、LF等,限制用户输入的CR和LF,或者对CR和LF字符正确编码后再输出,以防止注入自定义HTTP头。 创建安全字符白名单,只接受白名单中的字符出现在HTTP响应头文件中。在将数据传送到http响应头之前,删除所有的换行符。

因为授权渗透,资料都是商业机密,所以图片打码比较严重,怕被客户看到,千里之外来打我。

    文章原创,欢迎转载,请注明文章出处: CRLF注入漏洞(响应截断)的各种玩法.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归去来兮-zangcc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值