亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

HTTP協(xié)議頭注射漏洞實例

  以下情況中會出現(xiàn) HTTP協(xié)議頭注射漏洞:

  1. 數(shù)據(jù)通過一個不可信賴的數(shù)據(jù)源進(jìn)入 Web 應(yīng)用程序,最常見的是 HTTP 請求。

  2. 數(shù)據(jù)包含在一個 HTTP 響應(yīng)頭文件里,未經(jīng)驗證就發(fā)送給了 Web 用戶。

  其中最常見的一種 Header Manipulation 攻擊是 HTTP Response Splitting。 為了成功地實施 Http Response Splitting 盜取,應(yīng)用程序必須允許將那些包含 CR(回車,由 %0d 或
指定)和 LF(換行,由 %0a 或
指定)的字符輸入到頭文件中。

  攻擊者利用這些字符不僅可以控制應(yīng)用程序要發(fā)送的響應(yīng)剩余頭文件和正文,還可以創(chuàng)建完全受其控制的其他響應(yīng)。

  1.<?php

  2.    $location = $_GET['some_location'];

  3.    header("location: $location");

  4.?>

  6.假設(shè)在請求中提交了一個由標(biāo)準(zhǔn)的字母和數(shù)字字符組成的字符串,如 "index.html",那么包含此 cookie 的 HTTP 響應(yīng)可能表現(xiàn)為以下形式:

  7.HTTP/1.1 200 OK

  8….

  9.location: index.html

  10….

  11.然而,因為該位置的值由未經(jīng)驗證的用戶輸入組成,所以僅當(dāng)提交給 some_location 的值不包含任何 CR 和 LF 字符時,響應(yīng)才會保留這種形式。

  14.如果攻擊者提交的是一個惡意字符串,比如 :

  15."index.html
HTTP/1.1 200 OK
…",

  16.那么此 HTTP 響應(yīng)就會被分割成以下形式的兩個響應(yīng):

  17.HTTP/1.1 200 OK

  18.location: index.html

  19.HTTP/1.1 200 OK

  20….

  21.顯 然,第二個響應(yīng)已完全由攻擊者控制,攻擊者可以用所需的頭文件和正文內(nèi)容構(gòu)建該響應(yīng)。攻擊者可以構(gòu)建任意 HTTP 響應(yīng),從而發(fā)起多種形式的攻擊

  HTTP協(xié)議頭注射漏洞解決方案

  如今的許多現(xiàn)代應(yīng)用程序服務(wù)器可以防止 HTTP 頭文件感染惡意字符。

  例如,當(dāng)新行傳遞到 header() 函數(shù)時,最新版本的 PHP 將生成一個警告并停止創(chuàng)建頭文件。 如果您的 PHP 版本能夠阻止設(shè)置帶有換行符的頭文件,則其具備對 HTTP Response Splitting 的防御能力。

  代碼層面常見的解決方案:

  1.嚴(yán)格檢查變量是否已經(jīng)初始化

  2.在設(shè)置HTTP響應(yīng)頭的代碼中,過濾回車換行(%0d%0a、%0D%0A)字符

  3.禁止header()函數(shù)中的參數(shù)外界可控

 

上一篇:安卓防火墻 PS DroidWall

下一篇:Flash應(yīng)用安全規(guī)范