Linux平台下 MYSQL用户自定义函数(UDF)的利用

src:http://www.hacktxt.com/article/sort017/info-68876.html

Linux平台下 MYSQL用户自定义函数(UDF)的利用

Chris Anley [chris@ngssoftware.com] 5th July 2004

根据MySQL函数族的可扩展机制,意味着用户可以自己建立包含有自定义函数的动态库来创建自定义函数,简称udf

通过CREATE FUNCTION语句来实现这一机制,同时通过向’mysql.func’表录入信息来加载他们.

通常当MYSQL加载这些动态库时,该动态库文件路径必须能被MYSQL访问.

攻击者会滥用这一机制别有用心地创建一些“恶毒”的动态库文件并将它们通过SELECT … INTO OUTFILE语句写入可用的目录.当这些文件创建成功过后,攻击者通过insert向mysql.func表录入信息以配置MYSQL加载这些动态库文件和执行这些函数。

下面是一段相当简单的UDF链接库的代码 (请原谅他很简陋)(老外真有礼貌!):

#include <stdio.h>

#include <stdlib.h>

/*

compile with something like

gcc -g -c so_system.c

then

gcc -g -shared -W1,-soname,so_system.so.0 -o so_system.so.0.0 so_system.o -lc

*/

enum Item_result {STRING_RESULT, REAL_RESULT, INT_RESULT, ROW_RESULT};

typedef struct st_udf_args

{

unsigned int arg_count; /* Number of arguments */

enum Item_result *arg_type; /* Pointer to item_results */

char **args; /* Pointer to argument */

unsigned long *lengths; /* Length of string arguments */

char *maybe_null; /* Set to 1 for all maybe_null args */

Page 18

} UDF_ARGS;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值