在渗透环境时,我们经常会遇到疑似命令执行还有些bool注入和延时注入,但是都没有回显。
命令执行我们可能会用各种各样的请求来判断是否存在命令执行,对于bool注入和延时注入这两种注入类型的缺点就是速度慢,效率低,一个是基于对错判断数据,一个是基于访问时间来判断数据,dnslog的出现就正好弥补了这样的缺陷。
0x00 原理
这里参考一篇paper ,一个大牛的详细解释:DNS in SQL Injection Attacks
简单说就是:DNSLog 用于监测 DNS 和 HTTP 访问记录,可通过HTTP请求,让目标主机主动
请求 DNSLog API 地址,有相应的解析记录,则可判定为存在相应的漏洞。
0x01 利用
首先给大家分享一个免费的dnslog平台(ps:要是有cloudeye激活码的可以忽略)。
平台会给每一个会员分一个二级域名,xxx.ceye.io
。
简单的来说,dnslog平台自己保留dns的日志信息,并对应每个会员一个二级域名,这样我们可以通过
ping test.xxxxx.ceye.io
这样的多级域名方式,把我们需要返回的信息链接到url中,然后分析日志,test部分就是我们得到的信息。
0x01.1 命令执行
在我们找到命令执行漏洞的时候,我们可以执行这样的命令判断
|
|
这时候就可以去dnslog平台查看到信息
0x01.2 SQL注入
SQL Server
存储程序master..xp_dirtree()用于获取所有文件夹的列表和给定文件夹内部的子文件夹。
Oracle
UTL_INADDR包用于互联网的寻址–诸如检索本地和远程主机的主机名和IP的地址
MySQL
MySQL的函数LOAD_FILE()读取文件内容并将其作为字符串返回:LOAD_FILE()
PostgreSQL
PostgreSQL的声明COPY用于在文件系统的文件和表之间拷贝数据
写个脚本:
|
|