HTTP請求走私漏洞

一、漏洞定義與核心原理

? ? ? ?HTTP請求走私(HTTP Request Smuggling)是一種利用前端服務器(如代理、負載均衡器)與后端服務器在解析HTTP請求時的不一致性,繞過安全機制并執行惡意操作的攻擊技術。其核心在于混淆請求邊界,使前后端服務器對同一請求的解析結果不同,導致攻擊者注入的惡意請求被后端服務器單獨處理。

關鍵成因


HTTP/1.1協議允許通過兩種方式指定請求體長度:

  1. Content-Length:直接聲明請求體字節數。
  2. Transfer-Encoding: chunked:分塊傳輸,以0\r\n\r\n標記結束。

? ? ? ?當前后端服務器對這兩種方式的處理邏輯不一致時(如前端按Content-Length解析,后端按Transfer-Encoding解析),攻擊者可構造特殊請求,使前端轉發一個請求,而后端將其拆分為多個請求,從而繞過安全控制。

二、漏洞類型與攻擊示例

  1. CL.TE(Content-Length + Transfer-Encoding)
    • 前端:按Content-Length解析。
    • 后端:按Transfer-Encoding解析。
    • 攻擊示例
      POST / HTTP/1.1
      Host: example.com
      Content-Length: 6
      Transfer-Encoding: chunked
      0
      GET /admin HTTP/1.1
      • 前端根據Content-Length=6,認為請求體為0\r\n\r\n,轉發完整請求。
      • 后端按Transfer-Encoding解析,遇到0后認為請求結束,剩余部分(GET /admin...)被視為新請求,可能繞過權限控制。
  2. TE.CL(Transfer-Encoding + Content-Length)
    • 前端:按Transfer-Encoding解析。
    • 后端:按Content-Length解析。
    • 攻擊示例
      POST / HTTP/1.1
      Host: example.com
      Content-Length: 4
      Transfer-Encoding: chunked
      5c
      GPOST / HTTP/1.1
      • 前端按Transfer-Encoding解析,讀取5c字節后停止(實際數據為GPOST...)。
      • 后端按Content-Length=4,認為請求體為5c\r\n,剩余部分(GPOST...)被視為新請求,可能導致請求偽造。
  3. TE.TE(混淆Transfer-Encoding):前后端均支持Transfer-Encoding,但攻擊者通過混淆(如Transfer-Encoding: xchunked)使某一端忽略該頭部,導致解析不一致。

三、漏洞危害

  1. 會話劫持:竊取用戶Cookie或會話令牌,冒充合法用戶。
  2. 緩存投毒:污染CDN或代理緩存,向其他用戶返回惡意內容。
  3. 跨站腳本(XSS):注入惡意腳本,竊取用戶數據或執行未授權操作。
  4. 請求偽造:偽造管理員請求,執行敏感操作(如添加用戶、修改配置)。
  5. 信息泄露:獲取服務器內部信息(如路徑、配置、敏感文件)。
  6. 拒絕服務(DoS):通過大量惡意請求耗盡服務器資源。
  7. 遠程代碼執行(RCE):在特定環境下,結合其他漏洞執行任意代碼。

四、檢測與防御措施

檢測方法

  1. 計時攻擊:通過發送特定請求并觀察響應延遲,判斷是否存在解析不一致(如CL.TE或TE.CL)。
  2. 差異響應:構造包含兩個請求的測試用例,檢查后端是否將部分數據視為新請求。
  3. 自動化工具:使用Burp Suite、OWASP ZAP等工具掃描潛在漏洞。

防御策略

  1. 統一解析邏輯:確保前后端服務器使用相同的請求體長度解析方式(如均禁用Transfer-Encoding或均啟用嚴格校驗)。
  2. 禁用危險頭部:在代理或負載均衡器中禁用Transfer-EncodingContent-Length的混合使用。
  3. 輸入驗證:嚴格校驗HTTP頭部格式,拒絕非標準或惡意字符(如\r\n%0d%0a)。
  4. 版本升級:及時更新服務器軟件(如Nginx、Apache、IIS),修復已知解析漏洞。
  5. WAF防護:部署Web應用防火墻(WAF),攔截可疑請求(如包含多個請求的混合數據包)。
  6. 網絡隔離:避免直接暴露后端服務器,通過代理或API網關統一處理請求。

五、真實案例

  1. Apache Tomcat CVE-2021-33037
    • 漏洞:Tomcat在某些配置下未正確解析Transfer-Encoding頭部,導致與反向代理(如Nginx)組合使用時可能發生請求走私。
    • 影響:攻擊者可繞過安全檢查,執行未授權操作(如訪問管理員接口)。
    • 修復:升級至Tomcat 8.5.67、9.0.47或更高版本。
  2. 某電商平臺緩存投毒事件
    • 攻擊:通過HTTP請求走私污染CDN緩存,向用戶返回惡意商品頁面,竊取支付信息。
    • 后果:數萬用戶數據泄露,平臺聲譽受損。
    • 教訓:需定期檢測緩存服務器安全性,并嚴格隔離前后端請求處理邏輯。

六、總結

? ? ? ?HTTP請求走私是一種高危漏洞,其本質是協議解析不一致性。攻擊者通過構造特殊請求,可繞過身份驗證、竊取數據或執行未授權操作。防御該漏洞需從協議規范、服務器配置、輸入驗證等多層面入手,結合自動化工具與人工審計,確保前后端解析邏輯的一致性。同時,關注安全公告,及時修復已知漏洞,是降低風險的關鍵。

?結語????

把事情一件一件做完

讓愿望一個一個實現

!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88304.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Javaweb - 10.1 Servlet

目錄 Servlet 簡介 動態資源和靜態資源 Servlet 簡介 Servlet 開發流程 目標 開發過程 開發一個 web 類型的 module 開發一個 form 表單 開發一個 UserServlet 在 web..xml 為 userServlet 配置請求路徑 Edit Configurations 啟動項目 完! Servlet 簡介…

手機能用酒精擦嗎?

對于電視、電腦屏幕來說,為了避免反光、改善顯示效果,會在屏幕表面覆上一層“抗反射涂層”。不同廠商設計的涂層材料并不相同,酒精作為良好的溶劑,確實會損壞可溶的涂層。手機作為觸控產品,通常會在屏幕表面增加“疏水…

【圖像處理基石】圖像超分辨率有哪些研究進展值得關注?

近年來,圖像超分辨率(SR)領域在深度學習技術的推動下取得了顯著進展,尤其在模型架構優化、計算效率提升和真實場景適應性等方面涌現出諸多創新。以下是基于最新研究的核心進展梳理: 一、高效大圖像處理:像素…

Windows系統下WSL從C盤遷移方案

原因:一開始裝WSL的時候放在了C盤,這下好了,跑了幾個深度學習模型訓練后,C盤快滿了,這可怎么辦?可愁壞了。沒關系,山人自有妙計。我們將WSL遷移到D盤或者E盤呀。一.遷移操作步驟前期準備&#x…

金融時間序列機器學習訓練前的數據格式驗證系統設計與實現

金融時間序列機器學習訓練前的數據格式驗證系統設計與實現 前言 在機器學習項目中,數據質量是決定模型成功的關鍵因素。特別是在金融時間序列分析領域,原始數據往往需要經過復雜的預處理才能用于模型訓練。本文將詳細介紹一個完整的數據格式驗證系統&…

cocos2dx3.x項目升級到xcode15以上的iconv與duplicate symbols報錯問題

cocos2dx3.x項目升級xcode15以上后會有幾處報錯。1. CCFontAtlas.cpp文件下的iconv與iconv_close的報錯。修改如下:// iconv_close(_iconv);iconv_close((iconv_t)_iconv);iconv((iconv_t)_iconv, (char**)&pin, &inLen, &pout, &outLen); /…

HTTP/3.0的連接遷移使用連接ID來標識連接為什么可以做到連接不會中斷

一定要結合圖文一起理解!! 文章目錄文字描述傳統方式:HTTP/2 基于 TCP 的連接(就像打固定電話)HTTP/3 基于 QUIC 的連接遷移(就像用帶“通話ID”的手機)總結一下圖文詳解HTTP2.0傳統方式&#x…

讓工作效率翻倍的終極神器之被工具定義的編程時代(VS Code + GitHub Copilot + JetBrains全家桶)

目錄一、引言:被工具定義的編程時代二、背景:傳統開發模式的效率瓶頸2.1 認知負荷過載2.2 工具鏈斷層三、效率翻倍工具鏈深度解析3.1 智能代碼編輯器:從打字機到智能助手3.2 版本控制大師:Git的隱藏技能3.3 自動化腳本&#xff1a…

docker部署單機gitlab

環境準備: 證書: acme.sh --issue --dns dns_ali -d gitlab.chandz.com -d *.chandz.comcp /root/.acme.sh/gitlab.chandz.com_ecc/* /data/docker-data-volume/gitlab/ssl/目錄: mkdir -p /data/docker-data-volume/gitlab cd /data/docker-…

【K8S】在 Kubernetes 上配置安裝 Nginx Ingress 控制器指南

文章目錄架構概覽先決條件部署方案選擇方案一:手動 YAML 部署核心組件詳解方案二:Helm快速部署(生產推薦)驗證部署DNS配置策略方案A:單域名映射方案B:通配符映射(推薦)應用實戰&…

SHA-256算法詳解——Github工程結合示例和動畫演示

近日筆者在學習區塊鏈的相關知識,接觸到SHA-256算法,這里做一個知識梳理和總結。 強烈推薦大家自行去學習下面鏈接github上的工程,作者的動畫演示和解釋做的非常出色,邏輯非常清晰,B站搬運的對應的油管的講解視頻也放…

C語言模塊化編程思維以及直流電機控制(第四天)

👨?💻個人主頁:開發者-削好皮的Pineapple! 👨?💻 hello 歡迎 點贊👍 收藏? 留言📝 加關注?! 👨?💻 本文由 削好皮的Pineapple! 原創 👨?&#x1f4…

【PTA】數據結構與算法0001:1025 反轉鏈表

文章大綱寫在前面測試用例ac代碼學習代碼知識點小結寫在前面 實現思路 結構體封裝數據 根據order重新排序k區間值迭代翻轉 n整除k,則最后地址輸出"-1"非整除,最后剩余區間,原序輸出。最后地址輸出"-1" 題目有難度&…

深入解析 .NET 泛型:從原理到實戰優化

在現代軟件開發中,代碼復用性和性能優化是開發者永恒的追求。.NET 泛型作為一項強大的語言特性,不僅能夠幫助我們消除重復代碼,還能顯著提升代碼的類型安全性和運行效率。本文將帶你全面了解 .NET 泛型,從基本概念到高級用法&…

Excel 處理軟件 內容復制工具:工作表批量復制 + 合并拆分簡潔操作零門檻

各位辦公小能手們!今天給你們介紹一款超牛的軟件——Excel內容復制工具。軟件下載地址安裝包 這可是專門為了讓Excel數據處理效率蹭蹭往上漲而設計的輔助軟件呢!它的主要功能可多啦,能批量復制工作表,還能把好多表格合并到同一個…

【機器學習實戰筆記 14】集成學習:XGBoost算法(一) 原理簡介與快速應用

《XGBoost算法》 推薦的學習路徑: 【快速實現XGBoost、跑通代碼】- 第一部分 【快速掌握XGBoost應用、達到自由調參水平】- 第一部分~第三部分 【快速掌握XGBoost原理、面試得以通關】- 第一部分1 第二部分1.2、2.2 第四部分 目錄《XGBoost算法》一 XGBoost的基…

.NET AI 模板

引言 隨著人工智能技術的快速發展,AI應用開發已成為開發者必備的技能之一。然而,對于許多.NET開發者來說,如何快速上手AI開發仍然是一個挑戰。微軟推出的.NET AI模板預覽版正是為了解決這一問題而生,為開發者提供了構建智能聊天應…

EFK9.0.3 windows搭建

背景 最近某個功能要使用到ELK(ElasticSearch、Logstash、Kibana)采集日志,對數據進行分析,網上百度了一下,目前推薦不使用Logstash而使用Filebeat ,即EFK。 下載鏈接 Elasticsearch Kibana Filebeat 安裝前提 …

上海新華醫院奉賢院區:以元宇宙技術重構未來醫療生態

引言:當醫療遇上元宇宙在數字化轉型的浪潮中,上海新華醫院奉賢院區以"智慧醫院"為定位,率先構建了"元宇宙醫院"雛形。通過AI大模型、三維影像分析、AR手術導航等前沿技術的深度融合,醫院正在打造一個覆蓋全周…

知識競賽答題pk小程序用戶操作手冊

知識競賽答題 PK 小程序用戶操作手冊 一、注冊與登錄 用戶首次使用答題pk小程序需上傳頭像,輸入昵稱,并選擇加入團隊。如果是企業內部人員使用可開啟白名單功能。二、進入答題 PK 模式 登錄后,在小程序首頁,您可以看到 “單人挑戰…