前言
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,然後...