Vulnhub官方复现教程
https://github.com/vulhub/vulhub/blob/master/django/CVE-2018-14574/README.zh-cn.md
漏洞原理
Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。(由配置项中的django.middleware.common.CommonMiddleware
、APPEND_SLASH
来决定)。
在path开头为//example.com
的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。
该漏洞利用条件是目标URLCONF
中存在能匹配上//example.com
的规则。
复现漏洞
启动环境
https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为
cd /root/vulhub/django/CVE-2018-14574
搭建及运行漏洞环境:
docker-compose bui