Mysql注入中的outfile、dumpfile、load_file函数详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql注入中的outfile、dumpfile、load_file函数详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2620字,纯文字阅读大概需要4分钟。
内容图文
在利用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‘
来看一下
可以看到dumpfile对文件内容是原意写入,未做任何转移和增加。这也就是为什么 在平常的UDF提权中使用dumpfile进行dll文件
写入的原因
还有一个需要关注的点就是:outfile后面不能接0x开头或者char转换以后的路径,只能是单引号路径。这个问题在php注入中更加麻烦,因为会自动将单引号转义成‘,那么基本就GG了,但是load_file,后面的路径可以是单引号、0x、char转换的字符,但是路径中的斜杠是/而不是
Mysql注入中的outfile、dumpfile、load_file函数详解
标签:字段 需要 分割 into field 细节 sed 重启 nat
本文系统来源:https://www.cnblogs.com/zztac/p/11371149.html
内容总结
以上是互联网集市为您收集整理的Mysql注入中的outfile、dumpfile、load_file函数详解全部内容,希望文章能够帮你解决Mysql注入中的outfile、dumpfile、load_file函数详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。