1、JSONField简介
Django是一个大而全的Web框架,其支持很多数据库引擎,包括Postgresql、Mysql、Oracle、Sqlite3等,但与Django天生为一对儿的数据库莫过于Postgresql了,Django官方也建议配合Postgresql一起使用。
相比于Mysql,Postgresql支持的数据类型更加丰富,其对JSON格式数据的支持也让这个关系型数据库拥有了NoSQL的一些特点。在Django中也支持了Postgresql的数据类型:
JSONField
ArrayField
HStoreField
这三种数据类型因为都是非标量,且都能用JSON来表示,都可以用JSONField来统称。
总的来说就是支持Postgresql数据库json数据类型模块
2、利用条件
使用了JSONField模块
进入应用的Django-Admin后台
3、产生的原因
跟其他SQL注入根源一样,也是因为拼接导致的,Django的model最本质的作用是生成SQL语句,所以transform
和lookup
都需要实现一个名为as_sql
的方法用来生成SQL语句。
漏洞复现
- 打开靶场
访问http://110.40.154.100:8000/,可以看到默认页面