- 安全測試教程
- 安全測試 - 首頁
- 安全測試 - 概述
- 安全測試 - 流程
- 安全測試 - 惡意軟體
- HTTP 協議基礎
- HTTPS 協議基礎
- 編碼和解碼
- 安全測試 - 密碼學
- 安全測試 - 同源策略
- 安全測試 - Cookie
- 駭客攻擊 Web 應用程式
- 安全測試 - 注入
- 測試身份驗證漏洞
- 測試跨站指令碼攻擊 (XSS)
- 不安全的直接物件引用
- 測試安全配置錯誤
- 測試敏感資料洩露
- 缺少函式級訪問控制
- 跨站請求偽造 (CSRF)
- 存在漏洞的元件
- 未驗證的重定向和轉發
- 安全測試 - Ajax 安全
- 安全測試 - Web 服務
- 安全測試 - 緩衝區溢位
- 安全測試 - 拒絕服務攻擊 (DoS)
- 測試惡意檔案執行
- 安全測試 - 自動化工具
- 安全測試有用資源
- 安全測試 - 快速指南
- 安全測試 - 有用資源
- 安全測試 - 討論
安全測試 - 注入
注入技術包括使用應用程式的輸入欄位注入 SQL 查詢或命令。
Web 應用程式 - 注入
成功的 SQL 注入可以讀取、修改資料庫中的敏感資料,也可以刪除資料庫中的資料。它還使駭客能夠執行資料庫上的管理操作,例如關閉 DBMS/刪除資料庫。
讓我們藉助簡單的圖表瞭解此缺陷的威脅參與者、攻擊媒介、安全弱點、技術影響和業務影響。
示例
應用程式在構建以下易受攻擊的 SQL 呼叫時使用了不受信任的資料:
String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";
動手實踐
步驟 1 - 導航到應用程式的 SQL 注入區域,如下所示。
步驟 2 - 如練習中所述,我們使用字串 SQL 注入來繞過身份驗證。使用 SQL 注入以老闆 ('Neville') 的身份登入,無需使用正確的密碼。驗證是否可以檢視 Neville 的個人資料以及所有功能是否可用(包括搜尋、建立和刪除)。
步驟 3 - 我們將注入一個 SQL 語句,以便能夠透過將引數傳送為 'a' = 'a' 或 1 = 1 來繞過密碼。
步驟 4 - 利用後,我們能夠以管理員 Neville 的身份登入,如下所示。
防止 SQL 注入
有很多方法可以防止 SQL 注入。開發人員在編寫程式碼時,應確保他們相應地處理特殊字元。OWASP 提供了備忘單/預防技術,這絕對是開發人員的指南。
- 使用引數化查詢
- 轉義所有使用者提供的輸入
- 為終端使用者啟用資料庫的最低許可權
廣告