Django debug page XSS漏洞
来源:互联网 发布:电子画板手绘软件 编辑:程序博客网 时间:2024/06/05 16:50
Django debug page XSS漏洞(CVE-2017-12794)学习记录
i春秋实验:
https://www.ichunqiu.com/vm/59863/1
参考文章:
https://www.leavesongs.com/penetration/django-debug-page-xss.html
Django
一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C,Django也是CMS(内容管理系统)软件
- Django的模型最终是操作数据库
- psycopg2,是Python语言的PostgreSQL数据库接口,是对Psycopg 1.1.x版本进行的几乎完全的改写
漏洞触发的关键点
- 进入这个if语句:{% ifchanged frame.exc_cause %}{% if frame.exc_cause %}
- 在1.11.4 版本的Django中,if语句中有转换,在1.11.5中变成了强制转换
如果你重复创建同一个user【username变量值相同】,就会触发数据库的unique异常,还是因为他的数据库设置了限制。 - 接着就是因为Django为了方便开发者快速找到具体是数据库哪里出了错,就将数据库异常与代码中的异常关联在了一起,,最后在django/db/utils.py的exit函数可以看到有好几种异常类型,并且在最后会把异常的具体情况输出,在500页面中【程序出错】
- 异常类型:DataError,OperationalError,IntegrityError,InternalError,ProgrammingError,NotSupportedError,DatabaseError,InterfaceError,Error之一,则抛出一个同类型的新异常
漏洞利用
使用数据库,并触发数据库中的异常,比如上面说过的unique异常,还有其他的
这里有一个例子:
(1) 用户注册页面,未检查用户名
(2) 注册一个用户名为[removed]alert(1)[removed]的用户
(3) 再次注册一个用户名为[removed]alert(1)[removed]的用户
(4) 触发duplicate key异常,导致XSS漏洞
总结
第一次看,然后看不懂,就晾在一边了,然后最近刚好在学python 还有数据库,自己跟着书敲了一遍代码写了一个网站,基本上的功能都可以实现。回头再来看看这个实验,发现清晰了许多。
阅读全文
0 0
- Django debug page XSS漏洞
- XSS漏洞
- XSS漏洞
- 如何测试XSS漏洞
- xss漏洞简要分析
- XSS漏洞验证语句
- Xss漏洞检测
- 找寻xss漏洞
- Xss漏洞到底是什么
- 关于XSS漏洞-简介
- pentesterlab xss漏洞分析
- XSS漏洞的分类
- XSS漏洞的分类
- 预防XSS漏洞攻击
- XSS漏洞演示
- 如何测试XSS漏洞
- XSS漏洞修复
- xss漏洞修复
- Tablayout头部
- 闲谈寻址-两种寻址方法
- Codeforces 892 C. Pride (枚举)
- SVN 报错 sqlite[S11]: database disk image is malformed
- Cleaning Shifts 题解
- Django debug page XSS漏洞
- 处理静态资源
- 使用RecylerView实现瀑布流图片
- Python中通过csv的writerow输出多余空行+py2.x &py3.兼容
- Python判断一个文件夹内哪些文件是图片
- machine learning normal equation
- 机器学习实战-14利用SVD简化数据-改进推荐系统
- 一中OJ #1176 立方数分解[尼科梅彻斯定理] | 数论 + 枚举 | 解题报告
- Qt5.5 使用smtp发邮件的各种坑