1. 程式人生 > >HTTP 請求原理

HTTP 請求原理

    1、基礎:
    高層協議有:檔案傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和HTTP協議等
中介由三種:代理(Proxy)、閘道器(Gateway)和通道(Tunnel),一個代理根據URI的絕對格式來接受請求,重寫全部或部分訊息,通過 URI的標識把已格式化過的請求傳送到伺服器。閘道器是一個接收代理,作為一些其它伺服器的上層,並且如果必須的話,可以把請求翻譯給下層的伺服器協議。一 個通道作為不改變訊息的兩個連線之間的中繼點。當通訊需要通過一箇中介(例如:防火牆等)或者是中介不能識別訊息的內容時,通道經常被使用。
     代理(Proxy):一箇中間程式,它可以充當一個伺服器,也可以充當一個客戶機,為其它客戶機建立請求。請求是通過可能的翻譯在內部或經過傳遞到其它的 伺服器中。一個代理在傳送請求資訊之前,必須解釋並且如果可能重寫它。代理經常作為通過防火牆的客戶機端的門戶,代理還可以作為一個幫助應用來通過協議處 理沒有被使用者代理完成的請求。
閘道器(Gateway):一個作為其它伺服器中間媒介的伺服器。與代理不同的是,閘道器接受請求就好象對被請求的資源來說它就是源伺服器;發出請求的客戶機並沒有意識到它在同閘道器打交道。
閘道器經常作為通過防火牆的伺服器端的門戶,閘道器還可以作為一個協議翻譯器以便存取那些儲存在非HTTP系統中的資源。
    通道(Tunnel):是作為兩個連線中繼的中介程式。一旦啟用,通道便被認為不屬於HTTP通訊,儘管通道可能是被一個HTTP請求初始化的。當被中繼 的連線兩端關閉時,通道便消失。當一個門戶(Portal)必須存在或中介(Intermediary)不能解釋中繼的通訊時通道被經常使用。

2、協議分析的優勢—HTTP分析器檢測網路攻擊
以模組化的方式對高層協議進行分析處理,將是未來入侵檢測的方向。
HTTP及其代理的常用埠80、3128和8080在network部分用port標籤進行了規定

3、HTTP協議Content Lenth限制漏洞導致拒絕服務攻擊
使用POST方法時,可以設定ContentLenth來定義需要傳送的資料長度,例如ContentLenth:999999999,在傳送完成前,內 存不會釋放,攻擊者可以利用這個缺陷,連續向WEB伺服器傳送垃圾資料直至WEB伺服器記憶體耗盡。這種攻擊方法基本不會留下痕跡。
http://www.cnpaf.net/Class/HTTP/0532918532667330.html

4、利用HTTP協議的特性進行拒絕服務攻擊的一些構思
伺服器端忙於處理攻擊者偽造的TCP連線請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從正常客戶的角度看來,伺服器失去響應,這種情況我們稱作:伺服器端受到了SYNFlood攻擊(SYN洪水攻擊)。
而Smurf、TearDrop等是利用ICMP報文來Flood和IP碎片攻擊的。本文用“正常連線”的方法來產生拒絕服務攻擊。
19埠在早期已經有人用來做Chargen攻擊了,即Chargen_Denial_of_Service,但是!他們用的方法是在兩臺Chargen 伺服器之間產生UDP連線,讓伺服器處理過多資訊而DOWN掉,那麼,幹掉一臺WEB伺服器的條件就必須有2個:1.有Chargen服務2.有HTTP 服務
方法:攻擊者偽造源IP給N臺Chargen傳送連線請求(Connect),Chargen接收到連線後就會返回每秒72位元組的字元流(實際上根據網路實際情況,這個速度更快)給伺服器。

5、Http指紋識別技術
   Http指紋識別的原理大致上也是相同的:記錄不同伺服器對Http協議執行中的微小差別進行識別.Http指紋識別比TCP/IP堆疊指紋識別複雜許 多,理由是定製Http伺服器的配置檔案、增加外掛或元件使得更改Http的響應資訊變的很容易,這樣使得識別變的困難;然而定製TCP/IP堆疊的行為 需要對核心層進行修改,所以就容易識別.
      要讓伺服器返回不同的Banner資訊的設定是很簡單的,象Apache這樣的開放原始碼的Http伺服器,使用者可以在原始碼裡修改Banner資訊,然 後重起Http服務就生效了;對於沒有公開原始碼的Http伺服器比如微軟的IIS或者是Netscape,可以在存放Banner資訊的Dll檔案中修 改,相關的文章有討論的,這裡不再贅述,當然這樣的修改的效果還是不錯的.另外一種模糊Banner資訊的方法是使用外掛。
常用測試請求:
1:HEAD/Http/1.0傳送基本的Http請求
2:DELETE/Http/1.0傳送那些不被允許的請求,比如Delete請求
3:GET/Http/3.0傳送一個非法版本的Http協議請求
4:GET/JUNK/1.0傳送一個不正確規格的Http協議請求
Http指紋識別工具Httprint,它通過運用統計學原理,組合模糊的邏輯學技術,能很有效的確定Http伺服器的型別.它可以被用來收集和分析不同Http伺服器產生的簽名。

6、其他:為了提高使用者使用瀏覽器時的效能,現代瀏覽器還支援併發的訪問方式,瀏覽一個網頁時同時建立多個連線,以迅速獲得一個網頁上的多個圖示,這樣能更快速完成整個網頁的傳輸。
HTTP1.1中提供了這種持續連線的方式,而下一代HTTP協議:HTTP-NG更增加了有關會話控制、豐富的內容協商等方式的支援,來提供
更高效率的連線。