作者 | 陳峻
審校 | 重樓
近年來,隨著人們使用Web應用的與日俱增,各種與在線交易和通信相關的大量個人數據被存儲在其后端的數據庫中。對于那些由數據庫驅動的Web應用而言,SQL注入攻擊是一種相當嚴重的安全風險。攻擊者可以通過利用系統漏洞,繞過應用防火墻,未經授權地訪問到底層數據庫,并竊取各種敏感的數據信息。因此,我們需要制定一套針對SQL注入攻擊的有效應對措施,來提高Web應用的整體安全態勢。
作為一種典型的攻擊形式,SQL注入(簡稱SQLi)通常會使用惡意SQL代碼,來操縱后端數據庫,獲取機密信息和數據庫管理員權限,進而盜取用戶列表、以及破壞整個數據庫。目前,根據訪問后端數據的方法和潛在危害,我們可以將SQL注入分為:
當攻擊者可以使用同一通信通道,實施攻擊并收集攻擊結果時,這種攻擊就被稱為帶內SQL注入。作為一種最流行、最直接的攻擊,帶內SQL注入又包括:基于錯誤的SQL注入和基于聯合的SQL注入兩種最常見的形式。
與帶內SQL注入相比,推理SQL注入的攻擊時間更長。攻擊者可以通過發送有效負載、分析Web應用的響應、以及數據庫服務器的相應行為,來重新創建數據庫結構。由于無法獲取Web應用傳遞的數據,因此攻擊者無法查看到類似帶內攻擊的結果。而且,由于攻擊者需要逐個字符地枚舉數據庫,因此在攻擊大型數據庫時,其效率比較低下。
目前,推理SQL注入也包含:基于盲布爾的SQL注入和基于盲時間的SQL注入兩種形式。
由于依賴的是在Web應用數據庫服務器上已啟用的功能,因此帶外SQL注入并不常見。
通常,Web應用防火墻(簡稱WAF)可以通過篩選和監控Web應用與互聯網之間的HTTP流量,以及時發現跨站偽造、跨站腳本、文件包含和SQL注入等常見攻擊。在OSI模型中,WAF工作在第七層。作為一種反向代理,它往往被安裝在Web應用的前端,從而在客戶端請求到達服務器之前形成一道中間件式的屏障。和其他防火墻類似,WAF也需要通過一系列規則與策略的集合,來過濾惡意請求,進而防范應用漏洞被利用。目前,經常被部署到Web應用系統中的WAF類型包括:軟件型WAF、硬件型WAF、云WAF、以及Web應用內置的WAF服務。
上圖展示的是WAF防范SQL注入的邏輯過程。可見,WAF強大之處在于,它可以快速、方便地執行策略,并按需變更規則,從而對各種攻擊性請求做出更快的反應。
那么,WAF到底是遵循一個什么樣的流程來對攻擊進行檢測的呢?下面我們以一個典型的軟件型WAF為例,來深入探究。
我們常說“道高一尺,魔高一丈”,針對WAF在產品設計和部署配置上的參差不齊,SQL注入攻擊者時常會運用各種手段來繞過WAF,達到攻擊目的。例如,由于不同的WAF產品會自定義不同的警告頁面,因此攻擊者可以根據不同的頁面信息,來辨別出Web應用使用了哪一款WAF,從而制定出相應的能夠繞過WAF的數據請求特征。下面便是該領域的一些典型威脅與漏洞:
此外,常見的WAF繞過方法還有:關鍵字替換,特殊符號與編碼,利用注釋,重復參數污染,緩沖區溢出,以及利用多種繞過技術打“組合拳”,通過未經授權地訪問Web應用的系統文件,進而改變預期運行邏輯。
綜上所述,針對Web應用的SQL注入攻擊與應對,好似一個永無止境的“貓鼠游戲”。我們只有通過持續檢測,持續跟蹤,持續調整,持續更新,以及持續引入新的防御技術,才能更加靈活地應對SQL注入、遠程代碼執行(RCE)、以及跨站點腳本(XSS)等復雜多變的攻擊,才能在這場安全競賽中占得先機。
陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。
本文鏈接:http://www.www897cc.com/showinfo-26-89875-0.html聊聊針對Web應用的SQL注入攻擊與應對策略
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: CSS 實現從上到下從左到右的列表布局