CVE-2021-35042 Django QuerySet.order_by() SQL注入漏洞复现

目录

一、漏洞信息

二、环境搭建

三、复现过程

四、修复建议


一、漏洞信息

漏洞名称DJANGO QUERYSET.ORDER_BY() SQL注入漏洞
漏洞编号CVE-2021-35042
危害等级高危
CVSS评分7.5
漏洞厂商Django
受影响版本3.1.0 <= Django < 3.1.12;3.2.0 <= Django < 3.2.5
漏洞概述Django是Django基金会的一套基于Python语言的开源Web应用框架。该框架包括面向对象的映射器、视图系统、模板系统等。 Django 存在SQL注入漏洞,该漏洞源于未检测的用户输入传递给"QuerySet.order by()"可以在标记为弃用的路径中绕过预期的列引用验证,从而导致潜在的SQL注入。

二、环境搭建

使用vulhub提供的镜像容器进行靶场搭建:

docker-compose build

docker-compose up -d #启动靶场环境

访问http://your-ip:8000/vuln/可以转到Django的列表视图:

三、复现过程

1.测试漏洞,首先在http://your-ip:8000/vuln/,GET 参数添加order=-id,可得到id降序排列结果,根据此信息可以构造报错注入来获取信息:

2.获取数据库版本信息:

3.爆数据库根目录信息:

4.获取当前用户信息:

5.获取数据库表信息:

6.获取数据库表名表信息:

四、修复建议

请用户及时更新到最新版本(3.1.13/3.2.5以上)

链接 : Django security releases issued: 3.2.5 and 3.1.13 | Weblog | Django

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值