CVE-2020-7471漏洞复现及浅析

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
在这里插入图片描述

2、安装postgres 数据库
apt-get install postgresql-11

在这里插入图片描述

3、 创建测试数据库
/etc/init.d/postgresql start 开启数据库
在这里插入图片描述

Postgresql 已启动
在这里插入图片描述

连接数据库,修改密码为123456,并建立数据库test
在这里插入图片描述

4、下载poc:git clone https://github.com/Saferman/CVE-2020-7471.git
在这里插入图片描述

5、修改/root/CVE-2020-7471/sqlvul_project/settings.py
在这里插入图片描述
6、初始化测试数据库test中的表
在这里插入图片描述

7、查看数据库是没数据的
在这里插入图片描述

8、运行poc
python3 CVE-2020-7471.py
在这里插入图片描述

9、再次查看数据库,数据插入成功
在这里插入图片描述

三、POC浅析
在这里插入图片描述

initdb函数:给管理器添加初始测试数据
query函数:进行模糊测试,找出当delimiter 的值为哪些字符时,会让程序运行出现错误(即使用哪些字符可能会干扰SQL语句的执行(将delimiter 输入的字符带入了SQL语句,破坏原有语句))
query_with_evil()函数:进行注入点证明测试时,payload前后两个不同的赋值,是为了得到两个不同的结果,前一个使用正确的分隔符-,后一个是使用同样的分隔符-,但是后面带有SQL语句:
') AS “mydefinedname” FROM “vul_app_info” GROUP BY “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” GROUP BY “vul_app_info”.“gender” LIMIT 1 OFFSET 1 –
这里的payload =‘-\’) AS … LIMIT 1 OFFSET 1 –‘中的\’,反斜杠的作用只是在payload字符串赋值时转义单引号,payload中的-’,使得STRING_AGG(“vul_app_info”.“name”, ‘-’)右括号闭合了,导致了后面的SQL语句的执行。

参考链接:https://xz.aliyun.com/t/7218

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
复现Tomact_CVE-2020-1938漏洞,可以按照以下步骤进行操作: 1. 下载POC:可以使用以下命令下载POC文件: git clone https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read/ 2. 在攻击机上搭建环境:确保攻击机上已经安装了Tomcat服务器,并且版本在3.4.3以下,可以使用以下命令下载并安装Tomcat 3.4.3版本: git clone https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read/ 3. 配置Tomcat服务器:在Tomcat安装目录下,找到server.xml文件,在<Connector>标签中添加以下内容: protocol="org.apache.coyote.ajp.AjpNio2Protocol" secretRequired="false" 4. 启动Tomcat服务器:在Tomcat安装目录下运行启动脚本,如./catalina.sh run 5. 复现漏洞:使用以下命令触发漏洞复现: python3 file_include.py -u http://目标IP:目标端口/ -p /WEB-INF/web.xml 以上步骤可以帮助你复现Tomact_CVE-2020-1938漏洞。请注意,在进行漏洞复现时务必遵守道德规范,并获得合法授权进行测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CVE-2020-1938 漏洞复现](https://blog.csdn.net/weixin_48799157/article/details/124889366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CVE-2020-1938 Tomcat文件包含漏洞复现](https://blog.csdn.net/qq_49279082/article/details/129018726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值