Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 1.34 KB

File metadata and controls

46 lines (29 loc) · 1.34 KB

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

漏洞描述

Django 默认配置下,如果匹配上的 URL 路由中最后一位是 /,而用户访问的时候没加 /,Django 默认会跳转到带 / 的请求中。(由配置项中的 django.middleware.common.CommonMiddleware、APPEND_SLASH 来决定)。

在 path 开头为 //example.com 的情况下,Django 没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意 URL 跳转漏洞。

该漏洞利用条件是目标 URLCONF 中存在能匹配上 //example.com 的规则。

PS: 感觉略有点鸡肋,不过也看如何利用了。红队高人估计低危都能玩出花。

构建方式

因为vulhub对应的docker file安装时总报错,所以自己手动安装了下

/bin/python -m pip install --upgrade pip

pip install django==2.0.7 -i https://pypi.tuna.tsinghua.edu.cn/simple

app.py 文件参考 vulhub的文件即可,服务器上用supervisctl来部署应用

supervisord配置文件参考

[program:django_url]
autostart=true
autorestart=true
startsecs=10
startretries=2000
command=/root/virtualenvs/py3710/bin/python app.py runserver 0.0.0.0:8070
directory=/root/sources/CVE-2018-14574/

解决方案

升级到最新版

REF