一、原理
测试一些网站的时候,一些注入都是无回显的,手工盲注效率太低,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,虽然可以通过设置ip代理池解决,但是盲注往往效率很低,所以产生了DNSlog注入。
首先有一个可以用于dns解析的域名,比如ceye.io。通过代理商设置域名ceye.io的nameserver为自己的服务器a,再在服务器a上配置好dns服务器,这样所有ceye.io及其子域名的查询都会到服务器a上,这时就能实时监控域名查询请求。
这时,网站服务器会去指定的dns服务器上去解析域名,请求包中拼接了我们想要查询的语句的执行结果(把信息放在高级域名中,数据库的执行结果被拼接到域名解析的高级域名中),这样就能简介看到回显结果。
其他平台:
二、环境
本次实验使用phpstudy自带的mysql、并在其上搭建了dvwa、sqlilabs;
1、设置mysql数据库函数Load_file的状态
通过DNSlog盲注需要用的load_file()函数,所以一般得是root权限,查看load_file()是否可以读取的磁盘,DNSlog注入和load_file的函数是否可用有关系,若不可用,则修改my.ini配置文件
Load_file函数状态:
当secure_file_priv为空,就可以读取磁盘的目录。
当secure_file_priv为G:\,就可以读取G盘的文件。
当secure_file_priv为null,load_file就不能加载文件
MySQL中查询 show variables like '%secure%';
这里需要将null改为空,修改my.ini文件,增加一行语句
在phpstudy重启mysql服务
2、注册ceye:
网站是免费的,对应的也就非常不稳定,有时需多次刷新
注册完成后,注册成功后分配了一个三级域名
Eg:xxxxx.ceye.io(每个人注册得到的第三级域名都是不同的,这里及下文都用xxxxx替代,另外,每个账户六个小时内只有一百次解析次数)
验证是否注册成功:直接浏览器访问test1.xxxxxx.ceye.io
查看是否有解析记录
<