目录
一、漏洞信息
漏洞名称 | 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