怎样分析CVE-2020-7471 Django sql注入漏洞复现

怎样分析CVE-2020-7471 Django sql注入漏洞复现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

0x00简介

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

0x01漏洞概述

攻击者可通过构造分隔符传递给聚合函数contrib.postgres.aggregates.StringAgg,从而绕过转义符号(\)并注入恶意SQL语句。

0x02影响范围

Django 1.11.x < 1.11.28

Django 2.2.x < 2.2.10

Django 3.0.x < 3.0.3

Django 主开发分支

不受影响范围:

Django 1.11.28

Django 2.2.10

Django 3.0.3

0x03环境搭建

1.使用kali搭建django 漏洞版本使用版本为3.0.2

pip3 install django==3.0.2

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第1张

2. 安装postgres 数据库,由于kali自带了postgres数据库,这里直接启动

systemctl start postgresql

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第2张

3.使用命令sudo -i -u postgres进入postgres账户,然后输入psql进入数据库,并创建测试数据库test。CREATE DATABASE test;

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第3张

4.修改数据库密码,ALTER USER postgres WITH PASSWORD 'root';

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第4张

0x04漏洞复现

1.这里使用poc来进行实验,下载poc到本地

git clone https://github.com/Saferman/CVE-2020-7471.git

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第5张

2.然后进入到CVE-2020-7471/sqlvul_projects/settings.py,修改数据库配置,如果之前安装postgres数据库使用的默认配置(包括密码),这里就不需修改任何任何配置

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第6张

3. 修改完成后回到上层,然后利用CVE中的代码初始化测试数据库test中的表

python3 manage.py migrate
python3 manage.py makemigrations vul_app
python3 manage.py migrate vul_app

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第7张

运行没有改变数据没关系,初始化环境完成

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第8张

4.进test数据库查看数据表

\c test //进入test数据库
\d 查看全部表

查看vul_app_info表的信息

select * from vul_app_info;

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第9张

5.没有插入数据没没关系,使用vim 查看CVE-2020-7471.py里内容

vim CVE-2020-7471.py

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第10张

6.执行poc向数据库插入数据

python3 CVE-2020-7471.py

怎样分析CVE-2020-7471 Django sql注入漏洞复现  sql surfboard安卓下载 第11张可以看到POC里面的数据写入到数据库中,注入成功

0x05修复方式

升级到Django最新版3.0.3

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注蜗牛博客行业资讯频道,感谢您对蜗牛博客的支持。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram