安全測試 - 注入



注入技術包括使用應用程式的輸入欄位注入 SQL 查詢或命令。

Web 應用程式 - 注入

成功的 SQL 注入可以讀取、修改資料庫中的敏感資料,也可以刪除資料庫中的資料。它還使駭客能夠執行資料庫上的管理操作,例如關閉 DBMS/刪除資料庫。

讓我們藉助簡單的圖表瞭解此缺陷的威脅參與者、攻擊媒介、安全弱點、技術影響和業務影響。

SQL Injection

示例

應用程式在構建以下易受攻擊的 SQL 呼叫時使用了不受信任的資料:

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

動手實踐

步驟 1 - 導航到應用程式的 SQL 注入區域,如下所示。

SQL Injection

步驟 2 - 如練習中所述,我們使用字串 SQL 注入來繞過身份驗證。使用 SQL 注入以老闆 ('Neville') 的身份登入,無需使用正確的密碼。驗證是否可以檢視 Neville 的個人資料以及所有功能是否可用(包括搜尋、建立和刪除)。

步驟 3 - 我們將注入一個 SQL 語句,以便能夠透過將引數傳送為 'a' = 'a' 或 1 = 1 來繞過密碼。

SQL Injection

步驟 4 - 利用後,我們能夠以管理員 Neville 的身份登入,如下所示。

SQL Injection

防止 SQL 注入

有很多方法可以防止 SQL 注入。開發人員在編寫程式碼時,應確保他們相應地處理特殊字元。OWASP 提供了備忘單/預防技術,這絕對是開發人員的指南。

  • 使用引數化查詢
  • 轉義所有使用者提供的輸入
  • 為終端使用者啟用資料庫的最低許可權
廣告
© . All rights reserved.