首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

CVE-2019-14234:Django JSONField SQL注入漏洞复现

0x01 漏洞概述 ---- 该漏洞需要开发者使用了JSONField/HStoreField,且用户可控queryset查询时的键名,在键名的位置注入SQL语句。...Django通常搭配postgresql数据库,而JSONField是该数据库的一种数据类型。...该漏洞的出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接。...通过JSONField类获得KeyTransform类并生成sql语句的位置。...0x04 漏洞利用 ---- 通过对代码的分析,可以知道如果在你的Django中使用了JSONField并且查询的“键名”可控,就可以进行SQL注入 访问http://ip:8000/admin 输入用户名

2.3K00

@JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别

2、JSONField来源于fastjson,是阿里巴巴的开源框架,主要进行JSON解析和序列化。 3、DateTimeFormat是spring自带的处理框架,主要用于将时间格式化。...所以我们在格式化的时候要指定时区(timezone ) JSONField 用法:目前最长的用属性是@JSONField(name=”resType”)和 @JSONField(format=”yyyy-MM-dd...”) name:@JSONField(name=”resType”)主要用于指定前端传到后台时对应的key值,如果bean中没有这个注解,则默认前端传过来的key是field本身,即如果是private...format @JSONField(format=”yyyy-MM-dd”)主要用于格式化日期,比如前台传过来的时间是2018-07-12 17:44:08,但是通过这个注解,你存到数据库的时间就是2018

90830

fastjson全局日期序列化设置导致JSONField无效

问题描述 fastjson通过代码指定全局序列化返回时间格式,导致使用JSONField注解标注属性的特殊日期返回格式失效 使用版本 应用名称 版本 springboot 2.0.0.RELEASE fastjson...converters.add(fastJsonHttpMessageConverter); } } 属性设置代码 @JSONField(format = "yyyy-MM-dd")...private Date addDate; 返回结果 请求接口后addDate字段返回的格式为2022-12-17 13:26:45,仍然为全局日期格式,并不设置JSONField后期望的2022-12...-17格式 解决方案 统一扫描 系统启动时扫描对应基类的子类,通过反射获取标注了JSONField注解的字段并获取对应的format值 public class FastJsonUtil {...jsonField = field.getAnnotation(JSONField.class); if (jsonField !

33330

吃透FastJSON,认准此文!

以上便是我们平时常用的 API,除此之外,在 FastJSON 中还有一个注解 @JSONField 我们也要学会灵活运用 @JSONField 命名重塑 ?...@JSONField 用法简单,可以配置在 getter() 、setter() 或者 属性字段 上 ? 测试结果: ?...这个时候我们定义的实体类的属性名就得按照返回的字段名来命名,这对强迫症程序猿来说是致命打击,这个时候 @JSONField 的用处就来了,我们简单看个例子。...我们可以看到返回的字段名全都不满足小驼峰规则,我们定义的实体类可不能这样,借助 @JSONField 的写法如下: ? 测试下是否能够成功接收结果: ?...定制序列化 万物皆可定制,序列化也不例外~ 我们可以使用serializeUsing制定属性的序列化类 ? 通过这种方式我们针对 age 这个属性进行了处理,给指定字段加上了单位.

87220
领券