Mysql注入中outfile、dumpfile、load

62次阅读
没有评论

共计 1657 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Mysql 注入中 outfile、dumpfile、load_file 函数的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在利用 sql 注入漏洞后期,最常用的就是通过 mysql 的 file 系列函数来进行读取敏感文件或者写入 webshell,其中比较常用的函数有以下三个

into dumpfile()

into outfile()

load_file()

我们本次的测试数据如下

读写文件函数调用的限制

因为涉及到在服务器上写入文件,所以上述函数能否成功执行受到参数 secure_file_priv 的影响。官方文档中的描述如下

翻译一下就是

其中当参数 secure_file_priv 为空时,对导入导出无限制

当值为一个指定的目录时,只能向指定的目录导入导出

当值被设置为 NULL 时,禁止导入导出功能

这个值可以通过命令 select @@secure_file_priv 查询。由于这个参数不能动态更改,只能在 mysql 的配置文件中进行修改,然后重启生效。

dumpfile 与 outfile 的区别

导出数据库场景下的差异

select …… into outfile

我们先来看一下 mysql 官方文档里对于这两个函数的解释

其中有两个值得注意的坑点

outfile 函数可以导出多行,而 dumpfile 只能导出一行数据
outfile 函数在将数据写到文件里时有特殊的格式转换,而 dumpfile 则保持原数据格式

我们接下来通过导出测试看看这里面的细节

首先通过命令 select * from test into outfile /tmp/test.txt 来使用 outfile 导出

可以看到文件 /tmp/test.txt 文件中保存了所有的数据并且在一行数据的末尾自动换行

通过查看官方文档,可以看出使用如下参数可以进行格式调整

其中 FIELDS ESCAPED BY 可以用来对指定的字符进行转义,FIELDS [OPTIONALLY] ENCLOSED BY 用来对字段值进行包裹, FIELDS TERMINATED BY 用来对字段值之间进行分割

例如使用如下命令 select * from test into outfile /tmp/test.txt FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY LINES TERMINATED BY \n

得到的导出文件如下

select …… into dumpfile

而接着使用命令 select * from test into dumpfile /tmp/test.txt 使用 dumpfile 进行导出

可以看到此命令在执行的时候提示输出超过一行

查看文件内容

可以看见通过 dumpfile 导出的数据行数据之间并未进行换行且只导出了部分数据

写入 webshell 或者 udf 下的差异

 select …… into outfile

我们使用命令 select a\naa\raaaa into outfile /tmp/test.txt 来看一下在常用的写文件场景下的结果

可以看到 outfile 对导出内容中的 \n 等特殊字符进行了转义,并且在文件内容的末尾增加了一个新行

我们接着使用命令 select a\naa\raaaa into dumpfile /tmp/test.txt 来看一下

Mysql 注入中 outfile、dumpfile、load_file 函数的示例分析

可以看到 dumpfile 对文件内容是原意写入,未做任何转移和增加。这也就是为什么 我们在平常的 UDF 提权中使用 dumpfile 进行 dll 文件 写入的原因

还有一个需要关注的点就是:outfile 后面不能接 0x 开头或者 char 转换以后的路径,只能是单引号路径。这个问题在 php 注入中更加麻烦,因为会自动将单引号转义成 \ , 那么基本就 GG 了,但是 load_file,后面的路径可以是单引号、0x、char 转换的字符,但是路径中的斜杠是 / 而不是 \

关于“Mysql 注入中 outfile、dumpfile、load_file 函数的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1657字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)