当前位置:网站首页>CVE-2019-14234 Django JSONField SQL注入漏洞
CVE-2019-14234 Django JSONField SQL注入漏洞
2022-07-17 05:03:00 【wavesky111】
一、漏洞概述
Django是一个大而全的Web框架,其支持很多数据库引擎,包括Postgresql、Mysql、Oracle、Sqlite3等,但与Django天生为一对儿的数据库莫过于Postgresql了,Django官方也建议配合Postgresql一起使用。该漏洞的出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接。
二、影响版本
- Django 主开发分支
- Django 2.2.x < 2.2.4
- Django 2.1.x < 2.1.11
- Django 1.11.x < 1.11.23
三、漏洞原理
其实这是一个SQL注入的另一种形式——ORM注入(Object Relational Mapping)
1.ORM是什么:ORM 是写程序时的一种写法,以前写程序查数据库的时候都是代码加 sql 语句写到一起,程序庞大后就很难管理,很难维护。后来就把程序和 sql 语句分开了。同时 ORM 把 sql 的写法进行了封装,程序调用更为方便,能让程序员真正的去关注逻辑层代码,去面向对象编程;
2.该漏洞成因:queryset中有transform和lookup两个方式,分别被作用于“通过外键连接两个表”和“通过什么方式与里面的值进行比对(默认情况下是exact)”。所以只要是控制了queryset的键名,注入就水到渠成了,但这里有一个问题就是.filter( )里的键名是没有办法控制的,能控制的只有键值。但有一种情况,就是开发者把用户传入的整个对象都传给了filter()函数时,用户就可以通过控制filter的键名来进一步控制queryset的键名,进而实现ORM注入。——来自phith0n师傅:Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响 | 离别歌
四、漏洞复现环境
Kali Linux + Vulfocus
渗透机:Kali Linux
靶机:Vulfocus
五、实验步骤
1.开启镜像环境,访问页面(直接进后台对Collection模型进行管理)


2.构造payload:http://192.168.117.131:58480/admin/vuln/collection/detail__a%27b=1


3.复现还是很简单的,在这里主要还是记录一下ORM注入的情况和思路把。
六、修复方式
Django 官方已经发布新版本修复了上述漏洞,请受影响的用户尽快升级进行防护。升级Django到 >=2.2.4、>=2.1.11、>=1.11.23版本。
Django 2.2.4下载地址:
https://www.djangoproject.com/m/releases/2.2/Django-2.2.4.tar.gz
Django 2.1.11 下载地址
https://www.djangoproject.com/m/releases/2.1/Django-2.1.11.tar.gz
Django 1.11.23 下载地址:
https://www.djangoproject.com/m/releases/1.11/Django-1.11.23.tar.gz
——https://blog.csdn.net/weixin_42250835/article/details/121106792
七、POC
1.Poc_CVE-2019-14234 - wavesky - 博客园
2.https://github.com/wave-to/Poc/blob/main/Sql_or_ORM_injuection/Poc_CVE-2019-14234.py
边栏推荐
猜你喜欢

itext修改pdf文字

thinkphp 官网教程

2022最新版校园跑腿小程序源码

Hightec new aurix tc37x demo project

老年祝福火爆短视频微信小程序源码下载支持流量主

Blessing for the elderly popular short video wechat applet source code download support traffic master

ThinkPHP official website tutorial

UE-插件 ElectronicNodes 5.0.0/4.23-4.27

Basic operations of index library operation

Tidb performance analysis and optimization
随机推荐
UE-插件 ElectronicNodes 5.0.0/4.23-4.27
Mongo Db聚合操作和索引
TiDB 性能优化概述
模板类的声明和定义
[Lipschitz] simulation of Lipschitz Lipschitz exponent based on MATLAB
Load balancer ribbon practice
Warriors of the Visual Studio, Assemble! (warriors of visual studio, assemble!) Original 19:40:00 on July 12, 2009 label: compilation /mic
fastjson、jackjson、gson区别和注意点
CKS 核心知识点概述
Redis 集群面试题
新生任务-5
【FPGA教程案例26】在FPGA中通过verilog来实现小数的基础运算
Hyperlink implementation post submission
HighTec 新建 AURIX TC37X demo 工程
三种高并发方式实现i++
.sh脚本编写
根据日期重新排列数据js
Multiple connections will be maintained for each provider instance
Codeforces Round #419 (Div. 1)B - Karen and Test
Service end interface test - test point of interface test [Hangzhou multi tester] [Hangzhou multi tester _ Wang Sir]