怎么进行CVE-2020-7471漏洞复现及浅析

发布时间:2021-12-18 18:29:11 作者:柒染
来源:亿速云 阅读:243

怎么进行CVE-2020-7471漏洞复现及浅析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、CVE-2020-7471介绍

2020年2月3日,Django 官方发布安全通告公布了一个通过StringAgg(分隔符)实现利用的潜在SQL注入漏洞(CVE-2020-7471)。攻击者可通过构造分隔符传递给聚合函数contrib.postgres.aggregates.StringAgg,从而绕过转义符号(\)并注入恶意SQL语句。

受影响版本:

·Django 1.11.x < 1.11.28

·Django 2.2.x < 2.2.10

·Django 3.0.x < 3.0.3

不受影响产品版本:

·Django 1.11.28

·Django 2.2.10

·Django 3.0.3

二、漏洞复现

1、kali下安装受影响的django版本 pip3 install Django==3.0.2

怎么进行CVE-2020-7471漏洞复现及浅析

2、安装postgres 数据库

apt-get install postgresql-11

怎么进行CVE-2020-7471漏洞复现及浅析

3、 创建测试数据库

/etc/init.d/postgresql start 开启数据库

怎么进行CVE-2020-7471漏洞复现及浅析

Postgresql 已启动

怎么进行CVE-2020-7471漏洞复现及浅析

连接数据库,修改密码为123456,并建立数据库test

怎么进行CVE-2020-7471漏洞复现及浅析

4、下载poc:

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

怎么进行CVE-2020-7471漏洞复现及浅析

5、修改/root/CVE-2020-7471/sqlvul_project/settings.py

怎么进行CVE-2020-7471漏洞复现及浅析

6、初始化测试数据库test中的表

怎么进行CVE-2020-7471漏洞复现及浅析

7、查看数据库是没数据的

怎么进行CVE-2020-7471漏洞复现及浅析

8、运行poc

python3 CVE-2020-7471.py

怎么进行CVE-2020-7471漏洞复现及浅析

9、再次查看数据库,数据插入成功

怎么进行CVE-2020-7471漏洞复现及浅析

三、POC浅析

怎么进行CVE-2020-7471漏洞复现及浅析

initdb函数:给管理器添加初始测试数据

query函数:进行模糊测试,找出当delimiter 的值为哪些字符时,会让程序运行出现错误(即使用哪些字符可能会干扰SQL语句的执行(将delimiter 输入的字符带入了SQL语句,破坏原有语句))

query_with_evil()函数:进行注入点证明测试时,payload前后两个不同的赋值,是为了得到两个不同的结果,前一个使用正确的分隔符-,后一个是使用同样的分隔符-,但是后面带有SQL语句:

')AS"mydefinedname"FROM"vul_app_info"GROUPBY"vul_app_info"."gender" LIMIT 1 OFFSET 1 –

数据库进行查询时,使得整个查询语句变为了:

SELECT"vul_app_info"."gender",STRING_AGG("vul_app_info"."name",'-') AS"mydefinedname"FROM"vul_app_info"GROUPBY"vul_app_info"."gender"LIMIT 1 OFFSET 1 –

这里的payload =‘-\’) AS … LIMIT 1 OFFSET 1 –‘中的\’,反斜杠的作用只是在payload字符串赋值时转义单引号,payload中的-’,使得STRING_AGG(“vul_app_info”.“name”, ‘-’)右括号闭合了,导致了后面的SQL语句的执行。

看完上述内容,你们掌握怎么进行CVE-2020-7471漏洞复现及浅析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. Nginx 解析漏洞复现
  2. Ruby On Rails漏洞cve-2019-5418复现怎么进行

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

cve-2020-7471

上一篇:如何进行CVE-2020-13935复现与浅析

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》