压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

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

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

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

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

  其中最常見(jiàn)的一種 Header Manipulation 攻擊是 HTTP Response Splitting。 為了成功地實(shí)施 Http Response Splitting 盜取,應(yīng)用程序必須允許將那些包含 CR(回車(chē),由 %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è)在請(qǐng)求中提交了一個(gè)由標(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.然而,因?yàn)樵撐恢玫闹涤晌唇?jīng)驗(yàn)證的用戶(hù)輸入組成,所以?xún)H當(dāng)提交給 some_location 的值不包含任何 CR 和 LF 字符時(shí),響應(yīng)才會(huì)保留這種形式。

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

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

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

  17.HTTP/1.1 200 OK

  18.location: index.html

  19.HTTP/1.1 200 OK

  20….

  21.顯 然,第二個(gè)響應(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ù)時(shí),最新版本的 PHP 將生成一個(gè)警告并停止創(chuàng)建頭文件。 如果您的 PHP 版本能夠阻止設(shè)置帶有換行符的頭文件,則其具備對(duì) HTTP Response Splitting 的防御能力。

  代碼層面常見(jiàn)的解決方案:

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

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

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

 

上一篇:安卓防火墻 PS DroidWall

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