00.前言
这篇文章将对该漏洞进行简介并复现,同时简要说明Vulhub的使用方法,适合小白一起学习,大佬看看就好☺
01.简介
Django是一个开放源代码的Web应用框架,由Python写成,采用了MTV的框架模式。
Django已经成为web开发者的首选框架,其主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
02.漏洞描述
Django debug page XSS漏洞(CVE-2017-12794)
该漏洞是因为其debug模式中的缺陷所导致,当发现有同样类型异常时,关联了上一个异常和当前的新异常,最后,在500页面中被输出。这个异常被拼接进The above exception ({{ frame.exc_cause }}) was the direct cause of the following exception,最后触发XSS。
参考:https://paper.seebug.org/402/
Django URL跳转漏洞(CVE-2018-14574 )
当setting中配置了django.middleware.common.CommonMiddleware且APPEND_SLASH为True时漏洞就会触发。即Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。
该漏洞利用条件是目标URLCONF中存在能匹配上//baidu.com的规则。即在path开头为//baidu.com的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。
参考:https://xz.aliyun.com/t/3302
03.漏洞复现
首先,在vulhub-master中漏洞的相应位置打开终端,输入docker-compose up -d
打开环境:
docker-compose up -d
然后输入docker ps
查看环境是否打开成功:
docker ps
Django debug page XSS漏洞(CVE-2017-12794)
搭建成功后我们访问并创建用户:
your-ip:8000/create_user/?username=<script>alert(ccooll)</script>
然后再次访问该页面即可触发漏洞:
其触发的异常为:
duplicate key value violates unique constraint "xss_user_username_key"
DETAIL: Key (username)=(<script>alert(ccooll)</script>) already exists.
Django URL跳转漏洞(CVE-2018-14574 )
搭建好环境后访问your-ip:8000如下:
然后即可通过漏洞原理进行复现,我们重定向到百度,然后抓包:
即可返回是301跳转到//www.baidu.com,复现成功。这两个漏洞比较简单,大家看看就懂的咯~
最后复现完漏洞就可以关闭环境了:
docker-compose down
结束语:这是抬锅整理出来的复现过程希望能对大家有帮助☺