声明
好好学习,天天向上
漏洞描述
Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。(由配置项中的django.middleware.common.CommonMiddleware
、APPEND_SLASH
来决定)。
在path开头为//example.com
的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。
该漏洞利用条件是目标URLCONF
中存在能匹配上//example.com
的规则。
影响范围
1.11.0 <= version < 1.11.15
2.0.0 <= version < 2.0.8
复现过程
这里使用2.0.7版本
使用vulhub
cd /app/vulhub-master/django/CVE-2018-14574
使用docker启动
docker-compose up -d
环境启动后,访问http://your-ip:8000
http://192.168.239.129:8000
访问,直接跳到百度
http://192.168.239.129:8000//baidu.com
关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down