Django_debug_page_XSS漏洞 CVE-2017-12794 漏洞复现

Django debug page XSS漏洞(CVE-2017-12794)

by ADummy

0x00利用路线

​ Burpsuite抓包改包—>用户创建成功—>成功登录

0x01漏洞介绍

​ Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。(由配置项中的django.middleware.common.CommonMiddlewareAPPEND_SLASH来决定)。在path开头为//example.com的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。

​ 如果django.middleware.common.CommonMiddlewareAPPEND_SLASH设置都启用,并且项目的URL模式可以接受以斜杠结尾的任何路径,则对该站点恶意制作的URL的请求可能导致重定向到另一个站点,从而启用网络钓鱼和其他攻击。

影响版本
Django < 1.11.5

0x02漏洞复现

  1. 用户注册页面,未检查用户名
  2. 注册一个用户名为<script>alert(1)</script>的用户
  3. 再次注册一个用户名为<script>alert(1)</script>的用户
  4. 触发duplicate key异常,导致XSS漏洞

访问http://your-ip:8000/create_user/?username=<script>alert(1)</script>创建一个用户,成功

在这里插入图片描述

再次访问http://your-ip:8000/create_user/?username=<script>alert(1)</script>,触发异常
在这里插入图片描述

可见,Postgres抛出的异常为

duplicate key value violates unique constraint "xss_user_username_key"
DETAIL:  Key (username)=(<script>alert(1)</script>) already exists.

这个异常被拼接进`The above exception ({{ frame.exc_cause }}) was the direct cause of the following exception`,最后触发XSS。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值