您好,登錄后才能下訂單哦!
MySQL中怎么實現udf提權,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
UDF(user defined function)用戶自定義函數,是mysql的一個拓展接口。用戶可以通過自定義函數實現在mysql中無法方便實現的功能,其添加的新函數都可以在sql語句中調用,就像調用本機函數一樣。
0x02 Windows提權的條件
1.如果mysql版本大于5.1,udf.dll文件必須放置在mysql安裝目錄的lib\plugin文件夾下
2.如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目錄,在windows server 2000下放置在c:\winnt\system32目錄
3.所擁有的權限必須有insert和delete的權限
4.具有目錄的寫權限
以上的條件是從網上搜集來的,并沒有做完全的測試
這里我使用的版本是MySQL5.5.56,使用的權限是root權限,而且我將
secure-file-priv參數也已經設置為空,這里大家也再注意一下。
在高版本中,secure-file-priv參數是非常重要的,它限制了MySQL的導出,該參數為NULL時不允許導出、該參數為空時允許在任意文件夾中導出、該參數為某文件夾時允許在該文件夾中導出。
具體情況如下:
MySQL5.5版本:my.ini中無此參數,查詢該參數情況為NULL。
MySQL5.6版本:my.ini中無此參數,查詢該參數情況為空。
MySQL5.7版本:my.ini中有此參數,查詢該參數情況為數據目錄下的Upload文件夾。
其他版本的,大家自行進行測試。
0x03 利用過程
根據提權的條件,此版本應該將dll文件放到lib\plugin目錄下,而且這里我碰到了一個玄學問題,在網上都說lib和plugin文件夾是需要自己手動來創建的,而我安裝好之后,兩個文件夾居然自己就存在了,暫不知道是什么原因
這里也就再順便提一下,雖然網上一直都在說使用NTFS ADS流來創建文件,這個我還沒有執行成功過,會一直報錯的,暫時還不知道原因,如果有大佬知道請告知,如果之后我研究出來了,再發布出來吧
之后就是傳提權文件了,這里大家不用去求別人了,神器sqlmap里面就已經有自帶的了,只需要拿出來進行解密就可以了。
這里可以看到他并不是正常的dll文件,因為sqlmap中提供的是通過異或編碼了的,使用前是需要進行解密的,解密工具sqlmap也有自帶了,在sqlmap\extra\cloak文件中
直接使用就可以進行解碼了,使用之后會在通目錄下生成解密后的文件
之后將其改名后,通過各種方法,將它放到lib\plugin目錄下就可以了
然后就可以進行創建函數了,這里大家再注意一下,需要使用十六進制編輯器去看一下這個dll文件支持創建什么函數
這里我們可以看出來,可以創建sys_exec和sys_eval等函數,這里還有一個坑,也不知道是不是我操作的原因,這里如果我創建sys_exec函數的話,在執行命令之后,MySQL服務會徹底崩潰掉,使用sys_eval函數則沒有任何問題,我們這里直接創建函數
create function sys_eval returns string soname 'udf.dll';
然后直接進行執行就可以了
select sys_eval('whoami');
在使用完成之后,一定要及時將其刪除
drop function sys_eval;delete from mysql.func where name='sys_eval';
關于MySQL中怎么實現udf提權問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。