摘要: Django SQL注入漏洞复现(CVE-2020-7471)
Django是高水准的由Python编程语言驱动的一个开源Web应用程序框架,起源于开源社区。使用Django,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序,应用广泛。
SQL注入
高
CVE-2020-7471
Django 1.11.x
Django 2.2.x
Django 3.0.x
Django 主开发分支
Django 1.11.28
Django 2.2.10
Django 3.0.3
搭建环境
(kali)安装 django 漏洞版本(测试使用版本为3.0.2)
使用pip命令安装
pip3 install django==3.0.2
安装postgres 数据库
Sudo spt-get install postgresql postgresql-client
初次安装postgres 数据库,系统会创建一个数据库超级用户 postgres,密码为空。使用命令(sudo -i -u postgres)进入postgres数据库,并创建测试数据库(test)。
sudo /etc/init.d/postgresql start sudo -i -u postgres psql
下载CVE-2020-7471到本地
git clone https://github.com/SNCKER/CVE-2020-7471.git
修改配置文件
利用CVE中的代码初始化测试数据库test中的表
python3 manage.py migrate
这里No changes可以不用在意
python3 manage.py migrate vul_app
初始化环节全部完成
进入数据库:
\d 看一下数据库中所有的表
执行poc代码生成内容:
Python3 CVE-2020-7471.py
查询:
select*fromvul_app_info;
注入成功!
Django 官方已经发布新版本修复了上述漏洞,请受影响的用户尽快升级进行防护。
Django 1.11.28下载地址:
https://www.djangoproject.com/m/releases/1.11/Django-1.11.28.tar.gz
Django 2.2.10 下载地址
https://www.djangoproject.com/m/releases/2.2/Django-2.2.10.tar.gz
Django 3.0.3下载地址:
https://www.djangoproject.com/m/releases/3.0/Django-3.0.3.tar.gz
原文地址:https://www.freebuf.com/vuls/245359.html