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

SQL 注入網站入侵實戰案例:從發現漏洞到獲取管理員帳號

     編輯:關於SqlServer

作者記錄一次針對某電影網站的 SQL 注入滲透測試過程(網址、帳密已脫敏),展示從漏洞發現、環境偵察、猜解表/欄位、鎖定目標、計算長度、逐字元破解帳密的完整手工注入流程。

1. 尋找注入點

關閉 IE 友好錯誤提示,測試帶參數頁面 movie.asp?ID=1000,加單引號觸發錯誤,確認 Access 資料庫、注入點為 ArticleID。

2. 猜解表名

構造 ID=(SELECT COUNT(1) FROM user) 觀察回應:正確表名會返回資料/提示 EOF/報錯;錯誤表名提示「找不到表」。常用表名字典:user, users, member, members, userlist, admin, manager...。成功猜中 users。

3. 猜解欄位名

將 COUNT(1) 改為 COUNT(id),無「找不到欄位」錯誤即代表欄位存在。確認欄位:ID(數值)、UserID、PassWord、money(積分)。

4. 鎖定高積分管理員

用子查詢篩選 money > 25500 僅返回一筆記錄,避免猜解多用戶干擾。

5. 計算帳密長度

利用 LEN(UserID) + 1000 對應電影 ID,配合站內搜尋功能反查 ID 對應片名,推算長度:UserID=6、PassWord=8。

6. 逐字元破解 (ASCII 碼法)

構造 ASC(MID(UserID,1,1)) + 1000 取得首字元 ASCII,配合搜尋反查對應字元。依序獲得:

  • UserID: 104,117,97,106,105,101 → huajie
  • PassWord: 49,57,55,56,48,55,55,50 → 19780712 (生日密碼)

7. 登入成功

耗時約 45 分鐘 (猜表 30 分鐘、破解 15 分鐘) 取得管理員權限,隨後下載電影資源。


警示:本文僅記錄滲透測試技術過程,所有目標已授權或為作者自有環境。未經授權對他人系統進行 SQL 注入屬違法行為,嚴禁模仿。開發者應採用參數化查詢、最小權限、錯誤訊息隱藏等措施防範注入。

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