nginxCRLF注入漏洞
漏洞原因:
用户配置不当
在nginx的配置文件的如下位置中,加上一句return 302 https://$host$uri
这句话的意思是,在用nginx访问一个链接时,会用https协议访问,并且返回一个302found给用户。
其中的$uri是我们可以控制的,通过注入一个CRLF和两个CRLF来选择注入到http header还是http body。
复现环境:
centos7
docker
nginx
自行下载Docker-Compose,Docker,nginx
然后从git上下载以下别人打包好的漏洞复现的docker项目
https://github.com/vulhub/vulhub
切换到这个目录下
输入命令
docker-compose up -d
这里8080对应的就是CRLF漏洞
对于CRLF漏洞的介绍先看这篇文章:地址
poc: http://x.x.x.x:8080/%0A%0DSet-Cookie:%20a=1%0A%0DSet-cookie:JSPSESSID%3Dwooyun
发现信息填写进去
注入两个CRLF
poc: http://x.x.x.x:8080/%0D%0ASet-Cookie:%20a=1%0d%0a%0d%0a<img src=1 οnerrοr=alert(/xss/)>
看到xss语句写入进去,注入到body里了
漏洞修复:
删除此配置