freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CVE-2021-35042 Django SQL注入漏洞复现
K1 2021-08-03 14:53:05 455626

漏洞描述

Django 组件存在 SQL 注入漏洞,该漏洞是由于对 QuerySet.order_by()中用户提供数据的过滤不足,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏感信息泄露。

组件介绍

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。

利用条件

1、用户认证:不需要用户认证 2、触发方式:远程

综合评价

高危,最终造成服务器敏感信息泄露

影响版本

Django 3.2
Django 3.1

安全版本

Django >= 3.2.5
Django >= 3.1.13

漏洞复现

搭建环境

https://github.com/YouGina/CVE-2021-35042

运行(这里为了方便可以提前切换到root用户)

git clone https://github.com/YouGina/CVE-2021-35042.git
cd CVE-2021-35042

image-20210802231815633

初始设置

./setup.sh #./setup.sh执行之后,docker开启的是数据库服务器

image-20210803132720257.png

在这一步运行过程中会出现下面这个错误,这个意思是不要以root用户执行,以普通用户即可,不用理会这个报错;

image-20210803132837868

此时数据库服务已经开启

image-20210803133414746

接着把web服务也开启

docker-compose up -d #此时web服务器和数据库服务器均开启

image-20210803133557896.png

进入web服务容器中

docker exec -it {container_id} /bin/bash #进入web服务器

image-20210803133704686

执行下面这两条命令

python manage.py makemigrations cve202135042

红线框中表示在cve202135042应用目录下的migations的文件下多了一个0001_initial.py的文件,查看这个文件内容,表示我们创建了一个User这个模型类,并且指出这个类的成员属性id,name,以及他们的属性,同时我们了解到djnago在models.py创建模型类,其中一个模型类对应的是一张数据表,但是该命令并没有作用到数据库,这个命令中python manage.py makemigrations是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件0001_initial.py。

image-20210803134349702

接着执行下面这条命令, 这条命令的主要作用就是把上一条的改动作用到数据库也就是执行migrations里面新改动的迁移文件来更新数据库,比如创建数据表,或者增加字段属性

python manage.py migrate

image-20210803135349050

打开以下 URL 以加载示例数据:

http://localhost:8000/load_example_data

image-20210803140014375.png

然后转到易受攻击的页面

http://localhost:8000/users/

image-20210803135809936

image-20210803140001935.png

漏洞防御

及时更新到最新版本

链接 : https://www.djangoproject.com/weblog/2021/jul/01/security-releases/

这个漏洞复现因为网络环境问题卡了好久,这里感谢zly师兄的指点,这家伙搭环境比我快多了>_<

# SQL注入
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 K1 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
K1 LV.5
干啥啥不行 干饭第一名
  • 28 文章数
  • 207 关注者
Apache Log4j2远程代码执行漏洞复现
2021-12-12
泛微e-office文件上传漏洞(CNVD-2021-49104)
2021-11-29
Apache Druid LoadData 任意文件读取 CVE-2021-36749
2021-11-22
文章目录