漏洞复现目的:
熟悉XSS漏洞原理
漏洞介绍:Django 发布了新版本1.11.5,修复了500页面中可能存在的一个XSS漏洞,漏洞被利用时,需要用户在注册页面注册一个名为"<script>alert(1)</script> "的用户,当再次注册一个名为"<script>alert(1)</script> "的用户时,触发duplicate key异常,导致XSS漏洞。
搭建环境:docker环境命令:yml 文件目录下 执行 docker-compose up -d 直接拉取镜像
1、创建好环境后,访问http://127.0.0.1:8001/create_user/返回如下页面即环境创建成功

2、然后访问如下页面:http://127.0.0.1:8001/create_user/?username=\<script>alert(1)</script>,回显示用户创建成功。

3、再次访问时会出现弹窗证明存在XSS漏洞

4、页面出现的异常提示说明了出现漏洞的原因:这是因为出现的异常拼接进了下面的语句中,=从而出发了XSS漏洞。
The above exception({frame.exc_cause})was the direct cause of the following exception

XSS漏洞的防御
1、实体化相应的特殊符号:<, >,", ', \ 等。
2、对存在XSS漏洞位置的输入进行过滤,可以使用白名单,不在白名单中的一律过滤掉。