首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 注入與 XSS 跨站腳本攻擊偵測:正則表達式規則庫(下)

     編輯:關於SqlServer

2.3 典型 SQL 注入攻擊正則:單引號 + OR 關鍵字

/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix

解析:

  • \w*:零或多個字母數字底線
  • (\%27)|(\'):單引號或其 URL 編碼 %27
  • ((\%6F)|o|(\%4F))((\%72)|r|(\%52)):or 不分大小寫及其十六進位編碼 (%6F%72 / %4F%52)

2.4 UNION 注入偵測:單引號 + UNION 關鍵字

/((\%27)|(\'))union/ix

可擴展偵測 select, insert, update, delete, drop, create, alter, exec, xp_, sp_ 等關鍵字。

2.5 MS SQL Server 危險預存程序偵測

/exec(\s|\+)+(s|x)p\w+/ix

解析:

  • exec:執行關鍵字
  • (\s|\+)+:一或多個空白或 + (URL 編碼空白)
  • (s|x)p:sp_ 系統預存 / xp_ 擴展預存
  • \w+:程序名稱

典型攻擊目標:xp_cmdshell (執行 OS 命令)、xp_regread/write (操作登錄表)、sp_OACreate (COM 物件)。

3. 跨站腳本 (XSS) 攻擊偵測正則庫

3.1 通用 HTML 標籤偵測

/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix

解析:

  • ((\%3C)|<):< 或 %3C
  • ((\%2F)|\/)*:可選的關閉標籤 / 或 %2F
  • [a-z0-9\%]+:標籤名稱 (含十六進位編碼字符)
  • ((\%3E)|>):> 或 %3E

Snort 規則範例:

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS \
(msg:"NII Cross-site scripting attempt"; \
 flow:to_server,established; \
 pcre:"/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i"; \
 classtype:web-application-attack; sid:9000; rev:5;)

3.2 <img src XSS 變種偵測

/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/I

偵測 不分大小寫及編碼變體,後接任意非換行字符至 >。

3.3 極端模式:任意尖括號配對

/((\%3C)|<)[^\n]+((\%3E)|>)/I

偵測任何 <...> 結構。誤報率極高,僅建議在高安全需求、可人工複核環境啟用。

規則調優建議

  1. 分級部署:極端規則 → 告警模式;精準規則 → 阻擋模式。
  2. 白名單機制:合法業務流量 (如富文本編輯器提交) 納入白名單,避免誤攔。
  3. 解碼前檢測:WAF/IDS 應在 URL 解碼、HTML 實體解碼**前**套用規則,捕捉編碼繞過攻擊。
  4. 結合語意分析:純正則無法理解上下文,建議搭配語意引擎 (如 ModSecurity + OWASP CRS) 判斷攻擊意圖。
  5. 日誌審計:所有觸發規則的請求完整記錄 (含請求頭、Body、來源 IP),支援事後溯源。

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved