近年來 Web 應用層攻擊頻仍,防火牆與修補機制無法防禦應用程式本身的漏洞。最主流的兩大攻擊向量:
<script> 等惡意腳本,誘導受害者點擊,在其瀏覽器執行。本文系列提供基於 **Snort (PCRE)** 的偵測規則,亦可用於 grep 掃描 Web 伺服器存取日誌 (僅限 GET 請求)。
/(\%27)|(\')|(\-\-)|(\%23)|(#)/ix
解析:
(\%27)|(\'):單引號 ' 或 URL 編碼 %27 (MS SQL Server / Oracle 字串結束)(\-\-):雙連字號 -- (SQL 註解開始,瀏覽器不編碼連字號)(\%23)|(#):# 或 %23 (MySQL 註解開始)Snort 規則:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS \
(msg:"SQL Injection - Paranoid"; \
flow:to_server,established; \
uricontent:".pl"; \
pcre:"/(\%27)|(\')|(\-\-)|(\%23)|(#)/i"; \
classtype:web-application-attack; sid:10001; rev:1;)
單純偵測元字元誤報極高。進階規則組合「單引號 + 攻擊關鍵字」:
/' or /i、/' union /i、/' select /i、/' insert /i、/' update /i、/' delete /i、/' drop /i攻擊者常以 <b>、<i>、<script>alert('XSS')</script> 測試。進階手法使用**全字串十六進位編碼**繞過:
<script> → %3C%73%63%72%69%70%74%3E
或透過 Web Proxy (如 Achilles) 自動編碼特殊字元。
< >) 捕捉率 100% 但誤報極高;精準規則需根據業務流量調優。mod_dumpio 等模組。SID: 10000-19999 區間管理 SQLi 規則,20000-29999 管理 XSS 規則,便於維護。下篇將詳細提供:
' OR、' UNION、MS SQL xp_/sp_ 危險程序偵測<img src 變種、極端模式