程式碼安全測試第二十二期:HTTP響應拆分漏洞
一、什麼是HTTP響應拆分?
HTTP響應拆分是由於應用程式未對使用者提交的資料進行嚴格過濾,如果使用者輸入的值中注入了CRLF字元,有可能改變HTTP報頭結構。
HTTP響應拆分漏洞,也叫CRLF注入攻擊。CR、LF分別對應回車(即URL編碼%0d或\r)、換行(即URL編碼%0a或\n)字元。HTTP頭由很多被CRLF組合分離的行構成,每行的結構都是“鍵:值”。
攻擊者可以在HTTP標頭中包含攻擊的報文資料,從而讓瀏覽器按照攻擊者想要達到的目的進行HTTP響應。 當HTTP請求中包含CR和LF字元時,伺服器可能會響應輸出流,該輸出流被解釋為兩個不同 HTTP響應(而不是一個)。攻擊者可以實現對第二個響應報文的控制併發起攻擊。例如跨站點指令碼和快取中毒攻擊。
二、HTTP響應拆分漏洞構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
1、資料透過不受信任的源(最常見的是HTTP請求)進入web應用程式;
2、資料包含在傳送給web使用者的HTTP響應頭中,而不會驗證是否存在惡意字元。
三、HTTP響應拆分漏洞會造成哪些後果?
關鍵詞:修改應用程式資料;獲取特權或假定身份;
HTTP報頭中的CR和LF字元可能會讓攻擊者控制應用程式打算傳送的其餘報頭和響應主體,並允許他們建立完全在其控制下的附加響應。
四、HTTP響應拆分漏洞的防範和修補方法有哪些?
1、限制使用者輸入的CR和LF,或者對CR和LF字元正確編碼後再輸出,以防止注入自定義HTTP頭;
2、使用原始碼靜態分析工具進行自動化的檢測,可以有效的發現原始碼中的HTTP響應拆分問題。
五、HTTP響應拆分漏洞樣例:
用悟空 靜態程式碼檢測工具分析 上述程式程式碼,則可以發現程式碼中存在著“HTTP響應拆分” 導致的 程式碼缺陷,如下圖:
HTTP響應拆分在CWE中被編號為CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers('HTTP Response Splitting')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2777251/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第二十一期:從finally塊中return漏洞
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 程式碼安全測試第二十四期:數字型別的不正確轉換漏洞型別
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- 程式碼安全測試第二十三期:對XML外部實體引用的不當限制漏洞XML
- web應用安全測試之業務漏洞Web
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 程式碼安全測試第六期:XPath注入漏洞
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試第五期:OS命令注入漏洞
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- http響應程式碼及其代表的含義HTTP
- HTTP 響應狀態碼HTTP
- 靜態應用程式安全測試
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 網站安全測試之APP滲透測試漏洞網站APP
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 網站滲透測試安全檢測漏洞網站
- HTTP 響應HTTP
- 程式碼安全 兩種程式碼漏洞
- 白盒測試程式碼應該怎麼測試
- 安全相關的 HTTP 響應頭總結HTTP
- 程式碼安全測試第二十六期:透過錯誤訊息導致的資訊暴露
- 從應用安全到程式碼安全 確保軟體安全不能忽視檢測API漏洞!API
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- 靜態應用程式安全測試 (SAST) 工具AST
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 網站漏洞測試php程式碼修復詳情網站PHP
- 網站滲透測試漏洞分析程式碼架構網站架構