先前我發布了一個用于MYSQL提權的UDF,不過好像不少朋友不是很明白它的使用,不斷有人問我它的使用方法,有人干脆叫我寫個此UDF的專用PHP。說實話在我寫這個PHP之前就只學過點ASP,對PHP那是一竅不通,所以程序中不妥之處在所難免,高手不要見笑。PHP寫的比較笨,這里就不講它怎么寫的了,直接講它的使用。
一、功能:
利用MYSQL的自定義函數功能(再次聲明:利用MYSQL UDF提權絕非是溢出,而是MYSQL本身的一個功能),將MYSQL賬號轉化為系統system權限。
二、適用場合:
1.目標系統是Windows(Win2000,XP,Win2003);2.你已經擁有MYSQL的某個用戶賬號,此賬號必須有對mysql的insert和delete權限以創建和拋棄函數(MYSQL文檔原語)。
三、使用幫助:
第一步:將PHP文件上傳到目標機上,填入你的MYSQL賬號經行連接。
![]() |
圖1 |
第二步:連接成功后,導出DLL文件,導出時請勿必注意導出路徑(一般情況下對任何目錄可寫,無需考慮權限問題),對于MYSQL5.0以上版本,你必須將DLL導出到目標機器的系統目錄(win 或 system32),否則在下一步操作中你會看到"No paths allowed for shared library"錯誤。
![]() |
圖2 |
第三步:使用SQL語句創建功能函數。
語法:Create Function 函數名(函數名只能為下面列表中的其中之一) returns string soname '導出的DLL路徑';對于MYSQL5.0以上版本,語句中的DLL不允許帶全路徑,如果你在第二步中已將DLL導出到系統目錄,那么你就可以省略路徑而使命令正常執行,否則你將會看到"Can't open shared library"錯誤,這時你必須將DLL重新導出到系統目錄。
![]() |
圖3 |
第四步:正確創建功能函數后,你就可以用SQL語句來使用這些功能了。
語法:select 創建的函數名('參數列表'); 每個函數有不同的參數,你可以使用select 創建的函數名('help');來獲得指定函數的參數列表信息。
cmdshell 執行cmd;
downloader 下載者,到網上下載指定文件并保存到指定目錄;
open3389 通用開3389終端服務,可指定端口(不改端口無需重啟);
backshell 反彈Shell;
ProcessView 枚舉系統進程;
KillProcess 終止指定進程;
regread 讀注冊表;
regwrite 寫注冊表;
shut 關機,注銷,重啟;
about 說明與幫助函數
![]() |
圖5 |