前端漏洞(上)- Django debug page XSS漏洞(漏洞编号:CVE-2017-12794)
漏洞复现目的:
熟悉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漏洞位置的输入进行过滤,可以使用白名单,不在白名单中的一律过滤掉。