linux下 udf提權 mysql udf提權

2021-10-14 14:10:26 字數 2524 閱讀 5899

前言

udf = 『user defined function『,即『使用者自定義函式』。檔案字尾為『.dll』,常用c語言編寫。

通過在udf檔案中定義新函式,對mysql的功能進行擴充,可以執行系統任意命令。將mysql賬號root轉化為系統system許可權。

思路

1.將udf檔案上傳到指定位置

sqlmap中有現成的udf檔案,有linux版本和windows版本分為32位和64位,一定要選擇對應系統的對應版本版本,否則會顯示:can『t open shared library 『udf.dll『。尤其要注意

sqlmap\udf\mysql\windows\32目錄下存放著lib_mysqludf_sys.dll_

sqlmap\udf\mysql\windows\64目錄下為64位的lib_mysqludf_sys.dll_

但是sqlmap 中 自帶 的shell 以及一些二進位制檔案,為了防止被誤殺都經過異或方式編碼,不能直接使用的。

可以利用sqlmap 自帶的解碼工具cloak.py,進入到 sqlmap\extra\cloak\cloak 目錄下,執行命令:

python ./cloak.py -d -i  sqlmap\data\udf\mysql\windows\32\lib_mysqludf_sys.dll_ -o lib_mysqludf_sys.dll

會在當前目錄下生成乙個解鎖後的lib_mysqludf_sys.dll

通過以下命令檢視mysql的執行環境

或者select @@version_compile_machine;

可以判斷是在64為的cpu上執行了win32的系統,因此我們的mysql程式也是32位的。在使用udf.dll檔案時應該使用windows系統下32位的檔案

sqlmap中的udf檔案提供的函式:

sys_eval,執行任意命令,並將輸出返回。

sys_exec,執行任意命令,並將退出碼返回。

sys_get,獲取乙個環境變數。

sys_set,建立或修改乙個環境變數。

有了udf檔案,接下來就是利用各種辦法上傳到**指定目錄下 

mysql<5.0,匯出路徑隨意;

5.0 <= mysql<5.1,則需要匯出至目標伺服器的系統目錄(如:c:/windows/system32/)

mysql 5.1以上版本,必須要把udf.dll檔案放到mysql安裝目錄下的lib\plugin資料夾下才能建立自定義函式。

通過以下命令檢視mysql版本

根據不同的版本號,將udf.dll檔案上傳到對應的目錄下。

本人所測試的mysql版本是5.5.53因此需要將udf.dll檔案上傳到mysal/lib/plugin目錄下;

可以通過以下命令檢視plugin資料夾的絕對路徑:

本次只討論udf提權,上傳過程忽略

消除痕跡

掃碼關注

MySQL擴充套件介面UDF提權

1.udf介紹 udf user defined function 是mysql的乙個拓展介面,也稱為自定義函式。2.udf提權條件 1 目標系統是windows win2000,xp,win2003 2 可以將udf.dll寫入到相應目錄的許可權。如果 mysql版本大於5.1版本,udf.dll...

udf提權的適用環境

自己只遇到過windows mysql,所以一直以為只適用這個環境 多虧有人提醒,才發現udf提權並不限於此環境,而是同時適用於windows和linux環境,且支援mysql和postgresql 很久沒有進行提取,都忘記udf的含義了。複習下 user defined function udf提...

UDF提權 mysql外掛程式學習筆記

以前看過一篇老外的文章講mysql udf提權原理,這篇文章中針對kali自帶的mysql 提權udf.dll進行了解釋,但是並沒有介紹如何編寫乙個標準的udf擴充套件。後來有個朋友託我幫他改下udf.dll,把其他功能去掉,只留下cmd shell這個命令執行的功能 開始我以為隨便寫個dll,然後...