Django 2.0.8 任意URL跳转漏洞(CVE-2018-14574)

声明

好好学习,天天向上

漏洞描述

Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。(由配置项中的django.middleware.common.CommonMiddlewareAPPEND_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

你可能感兴趣的:(中间件漏洞复现,django,安全漏洞,信息安全)