复现Django SQL注入漏洞CVE2020-7471

0x00,复现前言
    是的,我又来了一个漏洞复现,这个复现我觉得还是有点曲折的,大部分都是配置环境的坑,别的地方基本上没有什么坑可以跳,除非是自己没有补充维生素B₁然后走夜路导致的(那咱也没办法)。
0x01,漏洞介绍
       漏洞描述:如果将不受信任的数据用作StringAgg分隔符,则1.11.28之前的Django 1.11、2.2.10之前的2.2和3.0.3之前的3.0允许进行SQL注入(例如,在Django应用程序中,该应用程序与用户一起提供一系列数据的下载)-指定的列分隔符)。通过将适当设计的定界符传递给contrib.postgres.aggregates.StringAgg实例,可以打破转义并注入恶意SQL。
       影响版本:
1.11-1.11.28(不含)
2.2-2.2.10(不含)
3.0-3.0.3(不含)
0x02,环境配置
       使用pip3安装Django,版本:3.0.2命令: pip3 install Django==3.0.2
 
       (如果没有安装pip3可以使用apt-get install python3-pip)
  忘了说了:pip安装后需要换一下源,这个可以去看看各大网站的文章。
       是的,我们还需要安装一个postgres数据库。
 
       apt-get install postgresql postgresql-client
    启动postgresql
    然后输入psql,回车。
    更改postgres密码为123,创建test
    然后我们需要创建一个数据库以进行测试,我这里就创建一个test数据库。
 
0x03,复现过程
    下载 CVE-2020-7471 git clone  https://github.com/saferman/CVE-2020-7471.git
    配置 CVE-2020-7471/sqlvul_projects/settings.py
    然后初始化数据库test中的表:
        python3 manage.pymigrate
        python3manage.py makemigrations vul_app
 
        python3 manage.pymigrate vul_app
    进入数据库,查看一下信息。
     然后运行poc脚本
 
        python3 CVE-2020-7471.py
0x04,如何修复
       Django官方已经给出了新版本,并修复了上面的漏洞,可以更新到最新。
 
       好了,关灯,睡觉,各位表哥晚安。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值