CRLF注入漏洞【冷门篇】
目录
CRLF注入漏洞简介
CRLF指的就是回车符(CR,ASCII-13,\r,%0d)和换行符(LF,ASCII-10,\n,%0a),操作系统就是通过这个标识进行换行的,相当于我们键盘的回车键。如果过滤不严格的情况下,就可以将恶意语句注入到请求包中。
这个漏洞虽然危害性不大,通常在src是不收的,现在国内对于CRLF漏洞并不是特别注意,还是有很多大的公司或者通用性很强的产品仍然在使用有问题的组件,主要是因为CRLF漏洞单独行动的话,没有什么特别大的意义。但如果配合其他漏洞,例如xss、ssrf,还有有一定的危害性的,
参考文章:php原生类利用,其中文章第五节就讲到了利用SoapClient类进行SSRF+CRLF攻击
也可以造成反射性xss攻击(可过waf)
漏洞原理
服务器未过滤攻击者输入的数据,而直接放到头部,导致攻击者通过注入/r/n(%0d%0a)能够控制HTTP返回头部。
crlfuzz-Go编写的快速扫描CRLF注入漏洞工具
下载地址
https://github.com/dwisiswant0/crlfuzz
推荐安装到linux系统上,Windows系统上无法使用 -l 参数进行批量扫描
//也可能是笔者电脑的问题,如果有师傅可以的话,可以加我的微信或者直接在下面评论
工具使用
工具详情:crlfuzz -h
-u, –url | 定义单个 URL 以进行模糊测试 |
---|---|
-l, –list | 批量指定文件内的URL进行扫描 |
-X, –method | 指定要使用的请求方法(默认:GET) |
-o, –output | 保存结果的文件 |
-d, –data | 定义请求数据 |
-H, –header | 将自定义标头传递给目标 |
-x, –proxy | 使用指定的代理进行模糊测试 |
-c, –concurrent | 设置并发级别(默认:25) |
-s, –silent | 静音模式 |
-v, –verbose | 详细模式 |
-V, –version | 显示当前的 CRLFuzz 版本 |
-h, –help | 显示其帮助 |
单一网址
./crlfuzz -u http://192.168.175.100:8080
批量扫描
./crlfuzz -l /root/crlfuzz/url.txt
//注意文件内的URL需要http(s)😕/开头
修改请求方法
默认情况下,crlfuzz 使用GET方法发出请求,我们可以用-X参数指定请求方式
./crlfuzz -u https://www.cnblogs.com/bcxc -X "PUT"
添加POST数据内容
如果用-X "POST" 发送请求时,可以用-d参数添加数据
./crlfuzz -u https://www.cnblogs.com/bcxc -X "POST" -d "name=bcxc"
添加请求头字段
可以用-H参数,添加想要的请求头字段,如:Cookie、User-Agent等
./crlfuzz -u https://www.cnblogs.com/bcxc -H "Cookie: ..." User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
代理
可以使用-x或者-proxy参数来指定代理地址
./crlfuzz -u https://www.cnblogs.com/bcxc -proxy http://127.0.0.1:7890
免打扰与详细模式
如果只想看到成功的目标,我们可以用
案例演示-Vulhub
测试环境:nginx/insecure-configuration
注入Set-Cookie头
Payload: http://your-ip:8080/
Set-Cookie: bcxc123