注入技術包括使用應用程式的輸入欄位注入SQL查詢或命令。
成功的SQL隱碼攻擊可以讀取,修改資料庫中的敏感資料,還可以從資料庫中刪除資料。它還使駭客能夠對資料庫執行管理操作,例如:關閉DBMS/刪除資料庫。
我們通過下面一個簡單的圖表瞭解這個漏洞的威脅代理,攻擊向量,安全弱點,技術影響和業務影響。
以下應用程式在構造,很易受攻擊的SQL呼叫時使用不受信任的資料 -
String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";
第1步 - 導航到應用程式的SQL隱碼攻擊區域,如下所示。
第2步 - 使用SQL插入來繞過身份驗證。使用SQL隱碼攻擊作為老闆(‘Neville’)登入,而不使用正確的密碼。確認可以檢視Neville的組態檔案並且所有功能都可用(包括搜尋,建立和刪除)。
第3步 - 我們將注入一個SQL,以便能夠通過傳送引數為'a'='a' or 1 = 1
來繞過密碼
第4步 - 提交登入後,可以登入Neville
賬號,他是Admin,如下所示。
有很多方法可以防止SQL隱碼攻擊。當開發人員編寫程式碼時,他們應該確保它們相應地處理特殊字元。OWASP提供備忘單/預防技術,絕對是開發人員一個不錯的指南。