论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
企业信息化/数字化
›
MES
›
CVE-2019-14234 Django JSONField SQL注入漏洞
CVE-2019-14234 Django JSONField SQL注入漏洞
tsx81428
论坛元老
|
2022-8-11 22:05:15
|
显示全部楼层
|
阅读模式
楼主
主题
1927
|
帖子
1927
|
积分
5783
一、漏洞概述
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师傅:
https://www.leavesongs.com/PENETRATION/django-jsonfield-cve-2019-14234.html
四、漏洞复现环境
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.
https://www.cnblogs.com/wavesky/p/16411757.html
2.
https://github.com/wave-to/Poc/blob/main/Sql_or_ORM_injuection/Poc_CVE-2019-14234.py
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
tsx81428
论坛元老
这个人很懒什么都没写!
楼主热帖
【pandas小技巧】--读取多个文件 ...
【参考】开发工程师职级与职级界定-职 ...
MySQL与Redis数据双写一致性工程落地案 ...
【毕业季】纸短情长,浅谈大二以前的学 ...
读SQL进阶教程笔记06_外连接
mysql修改表字段长度
kubernetes之镜像拉取策略ImagePullSec ...
BinaryBombs(二进制炸弹实验) ...
计算机系统装配与集成实验
Apache Shiro反序列化漏洞(Shiro550) ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
前端开发
物联网
快速回复
返回顶部
返回列表