目录
一、靶场环境
1.1、平台:
123.58.224.8:23290
(如果显示连接超时也是正常的,继续往后看)
1
1.2、知识:
1、参数带入(白盒更容易分析参数,黑盒就在数据包里面看看运气)
源码分析,如果在Django中使用了JSONField并且查询的“键名”可控,就可以进行SQL注入
2、路径
源码审计,路径可以方便得到。黑盒的话,也得分析数据包,看天吃饭了
1.3、描述:
Django是一款广为流行的开源web框架,由Python编写,许多网站和app都基于Django开发。Django采用了MTV的框架模式,即模型M,视图V和模版T,使用Django,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。而且Django还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。
该漏洞需要开发者使用了JSONField/HStoreField,且用户可控queryset查询时的键名,在键名的位置注入SQL语句
二、漏洞验证
2.1、分析:
URL后面上加上
/admin/
从右上角可以看出已经处于登陆状态了
此时URL输入为
http://ip:port/admin/vuln/collection/
(这一看就是查询的地方)
/admin/vuln/collection/?detail__a'b=1
其他思路:
1、考虑使用 or 1=1 永真带出数据
2、使用DNSLog带外
2.4、解题: