聪明伶俐的白开水 · 展现不拘一格的美 _光明网· 2 月前 · |
帅呆的小马驹 · 国外跑分软件GeekBench ...· 6 月前 · |
好帅的小熊猫 · 广汽集团2月销量跑赢大盘 ...· 1 年前 · |
想出国的皮蛋 · 在杭州读民办学校,到底要花多少钱? - 知乎· 1 年前 · |
博学的圣诞树 · 纯电MPV新选择 ...· 1 年前 · |
CVE-2020-7471:通过StringAgg(分隔符)的潜在SQL注入
django.contrib.postgres.aggregates.StringAgg聚合函数使用适当设计的定界符进行了SQL注入。
Django是高水准的由Python编程语言驱动的一个开源Web应用程序框架,起源于开源社区。使用Django,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序,应用广泛。2月11日,绿盟科技监测发现此漏洞PoC已公开,请相关用户尽快升级Django至修复版本,修复此漏洞。
参考链接: https://www.djangoproject.com/weblog/2020/feb/03/security-releases
受影响版本:
不受影响产品版本:
0x03 漏洞复现
一、环境部署
通过git先获取到漏洞的环境与poc
git clone https://github.com/Saferman/CVE-2020-7471.git
1、 安装 django 漏洞版(3.0.2)
pip3 installdjango==3.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
2、安装postgre 数据库
apt-get installpostgresql-11
我这里的postgre 默认的就已经安装了这个版本了所以就没有装,大家如果没有装的需要安装
3、启动postgre 数据库
service postgresql start
没有回显是正常的,如果担心可以看一下端口有没有开启postgre端口为5432
4、连接postgre 数据库在安装完毕后,系统会创建一个数据库超级用户 postgres并且密码为空。然后我们以管理员身份 postgres 登陆(注:这里postgres是系统用户)
sudo -i -u postgres
5、切换到postgres这个用户之后我们输入psql进入postgres的shell,并且我们可以看到我们这里psql的版本是11.5的
6、到这一步之后我们修改postgre的密码为root并创建一个zerosec的数据库
ALTER USER postgres WITH PASSWORD 'root';
CREATE DATABASE zerosec;
7、 把之前git下载好的文件打开修改配置文件~/CVE-2020-7471/sqlvul_project/settings.py
8、 找到第78行DATABASES修改databases里面的配置信息
修改前
修改后
9、使用django初始化数据表分别执行一下几句
python3 manage.py migrate
python3 manage.py makemigrationsvul_app
这里no changes …. 不要紧的可以不用care
python3 manage.py migrate vul_app
这里的no migration to apply 可以不用care 走形式
这样初始化环境就已经全部完成了。
二、 进入攻击环节(想必有同学要问了 数据库里面木有数据怎么办 别急接着往下看)
回到我们之前的psql shell中我们执行 “\c zerosec”
\c zerosec 的意思是选择zerosec数据库
然后我们\d 看一下数据库中所有的表
我们查询一下我们要利用到的vul_app_info 中的内容
可以看到这里是空的,那么不要激动,经过我分析之后发现本来应该要在
python3 manage.py makemigrations vul_app 这一步的时候要执行sql语句的但是我发现migrations 里面初始化的数据是空的,那么问题来了数据跑去哪了呢 经过后面发现 在poc中有一段代码是用来导入数据的。
好了 到这里大家应该就明白接下来要做什么了
执行POC代码
这时候我们再去查询一下数据库。
数据就进去了,当然这不是重点 重点是我们poc执行成功了。
在POC中我们可以看到作者用了\‘转义了’的实意,从而构成了后面语句的拼接。
到这里本次复现就结束了,下周会分析CVE-2020-7471的漏洞成因。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
聪明伶俐的白开水 · 展现不拘一格的美 _光明网 2 月前 |
想出国的皮蛋 · 在杭州读民办学校,到底要花多少钱? - 知乎 1 年前 |
博学的圣诞树 · 纯电MPV新选择 海马7X-E将于今天上市-Hi智车 1 年前 |