nginx crlf+xss漏洞组合拳

1.crlf漏洞概述

        CRLF是指回车和换行符的组合,它们的十六进制编码分别为0x0d和0x0a。在HTTP协议中,HTTP头和HTTP正文之间使用两个CRLF来进行分隔。如果攻击者能够注入恶意的换行符,就能够向HTTP消息中插入恶意的代码或会话Cookie。CRLF漏洞通常发生在Location和Set-cookie头中。攻击者可以利用CRLF漏洞实施HTTP响应拆分、HTTP头注入和Cookie欺骗攻击。

2.漏洞原理

        由于用户配置不当,加上了一句return 302 https://$host$uri ,这句话的意思是在用nginx访问一个链接时,会用https协议访问,并且返回一个302found给用户。其中的$uri是我们可以控制的,通过注入一个CRLF和两个CRLF来选择注入到http header还是http body。

nginx crlf+xss漏洞组合拳_第1张图片 

 3.漏洞复现

1.这是安全分子必备的漏洞环境复现神站,依照此链接将其下载至linux中 Vulhub - Docker-Compose file for vulnerability environment

2.cd vulhub/nginx/insecure-configuration

利用docker命令搭建环境

docker-compose up -d

搭建完毕之后登录localhost:8080,

3.打开bp进行抓包

我们在此处进行crlf注入

GET /%0d%0aset_cookie:aaaa%0d%0a%0d%0a HTTP/1.1

我们就会发现响应包中出现了cookie字段以及一段经典的xss注入语句

nginx crlf+xss漏洞组合拳_第2张图片 

 4.修复意见

删除不安全的配置以及过滤 \r 、\n 之类的换行符

你可能感兴趣的:(xss,网络安全)