UDF是Mysql提供给用户实现自己功能的一个接口,为了使UDF机制起作用,函数必须用C或C ++编写,并且操作系统必须支持动态加载。这篇文章主要介绍UDF开发和利用的方法。
操作系统:Windows 10
测试环境:PHPStudy+Mysql 5.5(x64)
编译器:VS2015
从MySQL官网下载对应版本的源码包,把MySQL对应版本的源码下载回来。将include文件夹和lib文件夹解压至C++项目路径。
http://mirror.yandex.ru/mirrors/ftp.mysql.com/Downloads/MySQL-5.5/mysql-5.5.59-winx64.zip
VS2015配置-项目属性
将MySQL的include、lib文件夹放到C++项目路径后。属性配置如下:
UDF在程序代码中加入调试OutputDebugStringA();就可以输出调试的信息了。在每个分支都输出相对应的调试信息,就可以获取当前运行的状态。
CPP源码如下:
回显shell编写尝试,跟没有回显的shell执行命令是一样的原理。
核心原理是创建一个管道,把命令结果输入管道读取出来后关闭管道。
使用方式:
CPP源码如下:
核心代码主要是以下几个注册表操作相关的API实现的
使用方式:
CPP源码如下:
CPP源码如下:
UDF有两种加载方式,一种是修改修改MySQL配置文件。第二种则是将UDF放置在MySQL指定的插件目录中加载。
另一种方法是用插件目录编写一个新的MySQL配置文件并将其传递给mysqld。
启动参数配置
my.ini配置
load_file函数
工具:hydra
CPP
用链表实现的MYSQL、MSSQL和oracle密码暴破C程序
http://blog.51cto.com/foxhack/35604
https://github.com/chinasun021/pwd_crack/blob/master/mysql/mysql_crack.py
https://www.waitalone.cn/python-mysql-mult.html
https://github.com/netxfly/x-crack
导出Mof
php探针、PHPMyadmin
Mysql函数扩展之UDF开发
https://blog.csdn.net/albertsh/article/details/78567661
VS2015配置C/C++-MySQL开发环境
https://blog.csdn.net/daso_csdn/article/details/54646859
MySQL UDF(自定义函数)
https://www.cnblogs.com/raker/p/4377343.html
MySQL UDF的调试方式 - debugview
https://blog.csdn.net/swotcoder/article/details/18527
详详详解MySQL UDF执行命令
http://www.360doc.cn/article/31784658_733287732.html
利用MySQL UDF进行的一次渗透测试
https://m.sohu.com/a/224950139_354899/?pvid=000115_3w_a
24.4.2.2 UDF Calling Sequences for Aggregate Functions
https://dev.mysql.com/doc/refman/5.5/en/udf-aggr-calling.html
windows下编写mysql UDF函数的失败经历,与ubuntu下的成功编译经历
https://blog.csdn.net/watch_ch/article/details/54015948
开源项目
https://github.com/mysqludf/lib_mysqludf_sys
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2018-5-31 11:24
被lipss编辑
,原因: