当前位置: 首页 > news >正文

百度网站推广茂名专业网站建设

百度网站推广,茂名专业网站建设,网站建设销售问答,新手跨境电商怎么做docker搭建漏洞复现环境 漏洞原理看帮助文档 # Django debug page XSS漏洞#xff08;CVE-2017-12794#xff09;分析Django发布了新版本1.11.5#xff0c;修复了500页面中可能存在的一个XSS漏洞#xff0c;这篇文章说明一下该漏洞的原理和复现#xff0c;和我的一点点评…docker搭建漏洞复现环境 漏洞原理看帮助文档 # Django debug page XSS漏洞CVE-2017-12794分析Django发布了新版本1.11.5修复了500页面中可能存在的一个XSS漏洞这篇文章说明一下该漏洞的原理和复现和我的一点点评。## 0x01 补丁分析因为官方说明是500页面中出现的BUG所以我们重点关注的就是django/views/debug.py。Github上有Django的仓库下载下来用1.11.4和1.11.5进行比较bash git clone https://github.com/django/django.git cd django git diff 1.11.4 1.11.5 django/views/debug.py ![sp170908_035017](img/django/sp170908_035017.png)可见外部关闭了全局转义然后在这两个地方增加了强制转义。那么漏洞肯定是在这个位置触发的。## 0x02 功能点探索如果要触发这两个输出点就必须进入这个if语句{% ifchanged frame.exc_cause %}{% if frame.exc_cause %}。首先我们来想一下正常情况下这个位置是干嘛用的也就是说功能点是什么。作为一个老年Django开发看到上图画框的这个关键句子The above exception was the direct cause of the following exception:我是有印象的一般是在出现数据库异常的时候会抛出这样的错误语句。我们可以做个简单的测试在Django命令行下我们创建一个username为phith0n的用户然后再次创建一个username为phith0n的用户则会抛出一个IntegrityError异常![sp170908_040738](img/django/sp170908_040738.png)见上图原因是触发了数据库的Unique异常。为什么Django会引入这样一个异常机制这是为了方便开发者进行SQL错误的调试因为Django的模型最终是操作数据库数据库中具体出现什么错误是Django无法100%预测的。那么为了方便开发者快速找到是哪个操作触发了数据库异常就需要将这两个异常回溯栈关联到一块。我们可以看看代码django/db/utils.py的__exit__函数python def __exit__(self, exc_type, exc_value, traceback):if exc_type is None:returnfor dj_exc_type in (DataError,OperationalError,IntegrityError,InternalError,ProgrammingError,NotSupportedError,DatabaseError,InterfaceError,Error,):db_exc_type getattr(self.wrapper.Database, dj_exc_type.__name__)if issubclass(exc_type, db_exc_type):dj_exc_value dj_exc_type(*exc_value.args)dj_exc_value.__cause__ exc_valueif not hasattr(exc_value, __traceback__):exc_value.__traceback__ traceback# Only set the errors_occurred flag for errors that may make# the connection unusable.if dj_exc_type not in (DataError, IntegrityError):self.wrapper.errors_occurred Truesix.reraise(dj_exc_type, dj_exc_value, traceback) 其中exc_type是异常如果其类型是DataError,OperationalError,IntegrityError,InternalError,ProgrammingError,NotSupportedError,DatabaseError,InterfaceError,Error之一则抛出一个同类型的新异常并设置其__cause__和__traceback__为此时上下文的exc_value和traceback。exc_value是上一个异常的说明traceback是上一个异常的回溯栈。这个函数其实就是关联了上一个异常和当前的新异常。最后在500页面中__cause__被输出。## 0x03 漏洞复现经过我的测试我发现在使用Postgres数据库并触发异常的时候psycopg2会将字段名和字段值全部抛出。那么如果字段值中包含我们可控的字符串又由于0x02中说到的这个字符串其实就会被设置成__cause__最后被显示在页面中。所以我们假设有如下场景1. 用户注册页面未检查用户名 2. 注册一个用户名为scriptalert(1)/script的用户 3. 再次注册一个用户名为scriptalert(1)/script的用户 4. 触发duplicate key异常导致XSS漏洞我将上述流程整理成vulhub的一个环境https://github.com/phith0n/vulhub/tree/master/django/C http://your-ip:8000/create_user/?usernamescriptalert(1)/script创建一个用户成功再次访问http://your-ip:8000/create_user/?usernamescriptalert(1)/script触发异常 因为被kali的浏览器拦截了用本机的浏览器实验
http://www.zqtcl.cn/news/613920/

相关文章:

  • 合作社网站模板贵州安顺建设主管部门网站
  • 网站不备案能访问吗哪家做企业网站
  • 做网站写的代号好跟不好的区别企信网企业信用信息系统
  • 网站需要服务器吗手机网站解决方案
  • 网站子网页怎么做国外网站 模板
  • 手机评测网站标志设计分析
  • 网页游戏网站建设成都公司网站
  • 网站流量统计分析的误区wordpress二级目录安装
  • 深互动平台网站wordpress后台无法访问
  • 建立网站需要服务器吗网站建设辶首先金手指十四
  • 做的成功的地方网站办公室工装设计公司
  • 怎样添加网站上百度商桥代码网站建设实验报告手写
  • 江阴做网站优化辽宁世纪兴电子商务服务中心
  • 最新创建的网站搭建网站的平台有哪些
  • 全国房地产网站企管宝app下载
  • 无线网络网站dns解析失败南通模板建站多少钱
  • h5手机网站建设哪家好北京海淀房管局网站
  • 制作一个简单的网站冬奥会网页设计代码
  • 如何做网站 百度西充建设部门投诉网站
  • 怎么创建自己的博客网站网站优化主要内容
  • 太原网站建设推广建设网站观澜
  • 网站开发员名称是什么网站制作教程及流程
  • 建设财经资讯网站的目的移动端网站模板怎么做的
  • 受欢迎的赣州网站建设青岛建站
  • 青海网站制作哪家好烟台龙口网站建设
  • 婚恋网站排名前十名网站建设的论坛
  • 进行网站建设有哪些重要意义上海浦东建筑建设网站污水处理工程
  • 自己做qq代刷网站要钱吗瑞安网站建设优化推广
  • 建设网站招标定制高端网站建设报价
  • 商城网站建设code521广州安全教育平台登录入囗