CVE-2019-14234 Django JSONField SQL注入漏洞

一、漏洞概述

Django是一个大而全的Web框架,其支持很多数据库引擎,包括Postgresql、Mysql、Oracle、Sqlite3等,但与Django天生为一对儿的数据库莫过于Postgresql了,Django官方也建议配合Postgresql一起使用。该漏洞的出现的原因在于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

三、漏洞原理

  其实这是一个SQL注入的另一种形式——ORM注入(Object Relational Mapping)

  1.ORM是什么:ORM 是写程序时的一种写法,以前写程序查数据库的时候都是代码加 sql 语句写到一起,程序庞大后就很难管理,很难维护。后来就把程序和 sql 语句分开了。同时 ORM 把 sql 的写法进行了封装,程序调用更为方便,能让程序员真正的去关注逻辑层代码,去面向对象编程;

  2.该漏洞成因:queryset中有transform和lookup两个方式,分别被作用于“通过外键连接两个表”和“通过什么方式与里面的值进行比对(默认情况下是exact)”。所以只要是控制了queryset的键名,注入就水到渠成了,但这里有一个问题就是.filter( )里的键名是没有办法控制的,能控制的只有键值。但有一种情况,就是开发者把用户传

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CVE-2019-14234是指vulhub靶场中的一个漏洞。这个漏洞是由于vulhub中的一个名为Fastjson的组件的安全缺陷引起的。Fastjson是一种广泛使用的Java JSON库,用于在Java应用程序中进行JSON转换。然而,Fastjson在处理特殊构造的JSON字符串时存在漏洞,攻击者可以利用这个漏洞执行任意的Java代码。 在CVE-2019-14234中,攻击者可以通过构造特定的JSON字符串并发送给受影响的应用程序来利用该漏洞。当应用程序使用Fastjson解析并处理该字符串时,恶意的Java代码将被执行。攻击者可以利用这个漏洞来执行远程代码,从而导致敏感信息泄露、服务器被入侵等危害。 为了防止CVE-2019-14234的攻击,可以采取多种措施。首先,更新vulhub中的Fastjson组件到最新版本,以获得最新的安全修复。其次,在编码和处理JSON数据时,应谨慎处理不受信任的输入。可以使用输入验证和过滤来确保传入的数据是符合预期的,并且不包含恶意的代码。 此外,安全审计和漏洞扫描工具也可以用于检测和修复CVE-2019-14234漏洞。通过定期扫描应用程序,可以及时发现和修复潜在的安全问题。最后,加强网络安全意识教育,提高开发人员和用户对网络安全的认识和理解,从而进一步提高防范和应对漏洞攻击的能力。 综上所述,CVE-2019-14234是vulhub靶场中的一个Fastjson组件漏洞,可以被攻击者利用来执行任意的Java代码。修复这个漏洞的方法包括更新Fastjson组件、输入验证和过滤、安全审计和漏洞扫描以及加强网络安全意识教育。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值