DjangoSQL注⼊漏洞(CVE-2020-7471)复现
Django这个web框架我之前接触的不太多,python编写的,听说是⼴为流⾏的开源框架?不太清楚,平时还是最爱php开发的⽹站哈哈哈哈(懂得都懂),既然是⾮常流⾏的框架,那么最近也是前段时间把爆出来的CVE威胁做⼀个基础的复现,也为⾃⼰以后做渗透测试的时候如遇到此框架,并且版本号在影响范围⾥,可以考虑下这个思路。
(以下是引⽤他⼈的漏洞概述和影响范围):
0x01、漏洞概述
2⽉3⽇,Django 官⽅发布安全通告公布了⼀个通过StringAgg(分隔符)实现利⽤的潜在SQL注⼊漏洞(CVE-2020-7471)。攻击者可通过构造分隔符传递给聚合函数contrib.postgres.aggregates.StringAgg,从⽽绕过转义并注⼊恶意SQL语句。
p1
CVSS3.1评分:9.8
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、环境搭建(在kali上实现)
⾸先git下github上公开的漏洞poc和配置
p2
然后下载3.0.2版本的django
p3
django需要⽤到的数据库是postgresql,这个数据库我也是今天头⼀次使⽤,由于博主我这学期也开了数据库的课程,所以去google了⼀下它的有关信息,其实postgresql数据库有许多⽐较领先的、现代化的概念与特性,⽀持⼤部分的sql标准,额外也有许多扩展,运⽤于商业型的⽹站较多(划重点!哈哈)
p4
postgresql数据库在安装完毕之后呢,会⾃动创建⼀个类似于root的⽤户,⽤户名为postgres,密码为空,接着⽤这个root⽤户的⾝份登陆。打开服务:
p5登陆:
p6 psql命令进⼊类似于shell的数据库界⾯:
p7将刚才那个postgres⽤户添加个密码:
p8创建⼀个数据库:
p9数据库创建好了,我们配置⼀下setting把:
p10
可以看到刚才git的⽂件CVE-2020-7471
p11
按照github配置教程依次进⾏:
p12
vim打开settings.py⽂件,⼤概在70+⾏也就是DATABASES这个模块⾥,把数据库名称和密码改成上⽂我们修改过的
p13
返回上⼀级⽬录,接下来就是利⽤manage.py进⾏初始化和配置了。
p14
cve漏洞库p14
p15
好了,环境配置基本完成,我们在进⼊到postgresql中看看我们刚才创建的数据库。
p17
\c xxx命令是连接进⼊到xxx数据库。
\d 显⽰每个匹配关系

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。