一、MySQL資料庫內置系統表 mysql5.7之後的版本自帶資料庫為 1.information_schema資料庫 這個庫在mysql中就是個信息資料庫,它保存著mysql伺服器所維護的所有其他資料庫的信息,包括了資料庫名,表名,欄位名等。在註入中,infromation_schema庫的作用無 ...
一、MySQL資料庫內置系統表
mysql5.7之後的版本自帶資料庫為
1.information_schema資料庫
這個庫在mysql中就是個信息資料庫,它保存著mysql伺服器所維護的所有其他資料庫的信息,包括了資料庫名,表名,欄位名等。在註入中,infromation_schema庫的作用無非就是可以獲取到table_schema、table_name、column_name這些資料庫內的信息。
所包含的主要表
tables表
存儲資料庫中的表信息(包括視圖),包括表屬於哪個資料庫,表的類型、存儲引擎、創建時間等信息。
查詢所有的表名
columns表
存儲表中的列信息,包括表有多少列、每個列的類型等
查詢某個表的欄位名
schemata表
當前 mysql 實例中所有資料庫的信息。SHOW DATABASES; 命令從這個表獲取數據
查詢:
獲取用戶名:select user();
獲取許可權:
獲取庫名:select schema_name from information_schema.schemata
獲取表名:select table_name from information_schema.tables where table_schema='test';
獲取欄位名:selcet column_name from information_schema.columns where table_name='students'
2、mysql資料庫
mysql 的核心資料庫,類似於 sql server 中的 master 表,主要負責存儲資料庫的用戶、許可權設置、關鍵字等 mysql 自己需要使用的控制和管理信息。(常用的如在 mysql.user 表中修改 root 用戶的密碼)。
其中最主要的是user表,在user表中,主要的欄位有user,password,host
在低版本mysql中,密碼欄位是password,高版本中是authentication_string
3、performance_schema資料庫
PERFORMANCE_SCHEMA 主要用於收集資料庫伺服器性能參數,並且庫里的表的存儲引擎均為 PERFORMANCE_SCHEMA,用戶不能創建存儲引擎為 PERFORMANCE_SCHEMA 的表。
performance_schema在5.7.x及以上版本中預設啟用(5.6.x及以下版本預設關閉)。如果要顯式啟用或關閉,我們需要使用參數performance_schema=ON|OFF設置,併在my.cnf中進行配置。
4、sys資料庫
這個資料庫主要是為了資料庫管理人員排錯使用的,主要反映資料庫性能的。
因為sys系統庫提供了一些代替直接訪問performance_schema的視圖,所
以必須啟用performance_schema(將performance_schema系統參數設置為ON),sys系統庫的大部分功能才能正常使用。同時要完全訪問sys系統庫,用戶必須具有以下資料庫的管理員許可權。
sys_config:這是在這個系統哭上存在的唯一一個表
variable:配置選項名稱
value:配置選項值
set_time:該行配置修改的時間
set_by:該行配置信息修改者,如果從被安裝沒有修改過,那麼這個數據應該為NULL
5、MySQL文件讀寫
(1)讀文件loadfile函數
滿足條件:
- 當前資料庫用戶具有 FILE 許可權,使用 show grants 查看
- secure_file_priv 不為 NULL,使用 select @@secure_file_priv 查看其值,值不為空字元串時,只能使用該目錄進行文件讀寫操作
- 讀取文件的大小小於 max_allowed_packet,使用 select @@max_allowed_packet 查看
- 文件及路徑存在
修改secure_file_priv
打開配置文件/etc/etc/my.cnf.d/mysql-server.cnf
然後在[mysqld]中添加secure_file_priv=
然後查詢;
loadfile函數
load_file() 函數只能從伺服器讀取文件,LOAD DATA 語句既能讀取伺服器的文件,也能讀取客戶機的文件,通過使用 LOCAL 語句從客戶機讀取文件內容。
(2)寫文件
into outfile
mysqldump寫文件
mysqldump -u 用戶名 -p 密碼 資料庫 數據表 > 路徑
二、mssql資料庫內置表
1、系統預設資料庫
mssql新安裝後預設有四個資料庫
(1)master:master 資料庫記錄 SQL Server 系統的所有系統級信息。 這包括實例範圍的元數據(例如登錄帳戶)、端點、鏈接伺服器和系統配置設置。 在 SQL Server中,系統對象不再存儲在 master 資料庫中,而是存儲在 Resource 資料庫中。 此外, master 資料庫還記錄了所有其他資料庫的存在、資料庫文件的位置以及 SQL Server的初始化信息。 因此,如果 SQL Server master 資料庫不可用,則 無法啟動。
(2)model 資料庫用於在 SQL Server 實例上創建所有資料庫的模板。 因為每次啟動 時都會創建 tempdb SQL Server ,所以 model 資料庫必須始終存在於 SQL Server 系統中。 model 資料庫的全部內容(包括資料庫選項)都會被覆制到新的資料庫。 啟動期間,也可使用 model 資料庫的某些設置創建新的 tempdb ,因此 model 資料庫必須始終存在於 SQL Server 系統中。
model 的用法:當發出 CREATE DATABASE 語句時,將通過複製 model 資料庫中的內容來創建資料庫的第一部分, 然後用空頁填充新資料庫的剩餘部分。如果修改 model 資料庫,之後創建的所有資料庫都將繼承這些修改。
(3)msdb 資料庫由SQL Server 代理用於計劃警報和作業,以及其他功能。
(4)tempdb顯式創建的臨時用戶對象。 它們包括全局或局部臨時表及索引、臨時存儲過程、表變數、表值函數返回的表或游標。
tempdb 中的操作是最小日誌記錄操作,以便回滾事務。 每次啟動 SQL Server 時都會重新創建 tempdb,從而在系統啟動時總是具有一個乾凈的資料庫副本。 在斷開聯接時會自動刪除臨時表和存儲過程,並且在系統關閉後沒有活動連接。tempdb 不會有什麼內容從 SQL Server 的一個會話保存到另一個會話。 不允許對 tempdb 執行備份和還原操作。
Sql Server中創建資料庫中預設表的作用
select @@version;查詢資料庫版本
select db_name();查詢當前資料庫
查詢表名
查詢欄位名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='Student');
sa:在搭建時,選擇使用SQL Server身份驗證會創建SA賬戶並設置密碼,SA(System Administrator)表示系統管理員,在SQLServer2019之前的SA用戶都是系統最高許可權用戶SYSTEM,但在2019版本時為普通資料庫用戶mssqlserver,是一個低權用戶。
mssql的三種許可權級別:
sa許可權:資料庫操作,文件管理,命令執行,註冊表讀取等價於system,SQLServer資料庫的最高許可權
db許可權:文件管理,資料庫操作等價於 users-administrators
public許可權:資料庫操作等價於 guest-users
select is_srvrolemember('sysadmin') ;#判斷是不是管理員許可權
寫文件
xp_cmdshell是Sql Server中的一個組件,預設關閉,將命令字元串作為操作系統命令 shell 執行,並以文本行的形式返回所有輸出。通常在拿到sa口令之後,可以通過xp_cmdshell來進行提權,
查看是否開啟xp_cmdshell
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
返回1說明開啟
EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO
(1)判斷文件是否存在sys.xp_fileexist
0表示不存在,1表示存在
sys.xp_create_subdir 用於創建子目錄,參數是子目錄的路徑:
exec master.sys.xp_create_subdir 'c:\User\root\hack'
(2)創建好目錄後,就可以寫文件;但是需開啟xp_cmdshell組件
(3)一般思路為拿到許可權後先創建一個表,然後把文件寫入表,最後從表讀取文件
三、hashcat破解哈希
1、hashcat使用
Hashcat 是一款用於破解密碼的工具,據說是世界上最快最高級的密碼破解工具,支持 LM 哈希、MD5、SHA 等系列的密碼破解,同時也支持 Linux、Mac、Windows 平臺。
常用參數
-r 使用自定義破解規則 -o 指定破解成功後的 hash 及所對應的明文密碼的存放位置 -m 指定要破解的 hash 類型,如果不指定類型,則預設是 MD5 -a 指定要使用的破解模式,其值參考後面對參數。“-a 0” 字典攻擊,“-a 1” 組合攻擊;“-a 3” 掩碼攻擊 -D 指定 opencl 的設備類型 --show 顯示已經破解的 hash 及該 hash 所對應的明文 --force 忽略破解過程中的警告信息,跑單條 hash 可能需要加上此選項 --remove 刪除已被破解成功的 hash --username 忽略 hash 文件中的指定的用戶名,在破解 linux 系統用戶密碼 hash 可能會用到 --increment 啟用增量破解模式,你可以利用此模式讓 hashcat 在指定的密碼長度範圍內執行破解過程 --increment-min 密碼最小長度,後面直接等於一個整數即可,配置 increment 模式一起使用 --increment-max 密碼最大長度,同上 --outfile-format 指定破解結果的輸出格式 id ,預設是 3 --self-test-disable 關閉啟動自檢
爆破模式
-a
0 | Straight (欄位破解) 1 | Combination (組合破解) 3 | Brute-force (掩碼暴力破解) 6 | Hybrid Wordlist + Mask(字典+掩碼破解) 7 | Hybrid Mask + Wordlist(掩碼+字典破解)
字元類型
掩碼舉例
八位數字密碼:?d?d?d?d?d?d?d?d 八位未知密碼:?a?a?a?a?a?a?a?a 前四位為大寫字母,後面四位為數字:?u?u?u?u?d?d?d?d 前四位為數字或者是小寫字母,後四位為大寫字母或者數字:?h?h?h?h?H?H?H?H 前三個字元未知,中間為admin,後三位未知:?a?a?aadmin?a?a?a 6-8位數字密碼:--increment --increment-min 6 --increment-max 8 ?d?d?d?d?d?d?d?d 6-8位數字+小寫字母密碼:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h
使用示例:
mysqlhash破解
查詢
將哈希保存為本地文件然後用hashcat破解
查詢
select name,password_hash from sys.sql_logins where name='sa'
然後把hash保存進行破解
mssql各版本加密形式
mssql2000
select name,password from master.dbo.sysxlogins Hash格式: 0x0100(固定) + 8位key+40位HASH1 +40位HASH2 0x0100AC78A243F2E61FA800A7231C501D49CDA5B93A8A2294DC68AE487C99233F245F86A9ED5749F1838021EE1610
MSSQL 2005版本
select name,password_hash from sys.sql_logins Hash格式: 0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 0x01004086CEB698DB9D0295DBF84F496FDDCECADE1AE5875EB294
MSSQL 2008 R2版本
Select name,password_hash from sys.sql_logins where name = 'sa' Hash格式: 0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 0x0100A9A79055CACB976F1BE9405D2F7BE7B2A98003007978F821作者:江公 出處:http://www.cnblogs.com/-xiaopeng1/ 本文版權歸作者和博客園共有,歡迎轉載,但必須給出原文鏈接,並保留此段聲明,否則保留追究法律責任的權利。