HTTP代理原理
通過HTTP協定與代理伺服器建立連接配接,協定信令中包含要連接配接到的遠端主機的IP和端口号,如果有需要身份驗證的話還需要加上授權資訊,伺服器收到信令後首先進行身份驗證,通過後便與遠端主機建立連接配接,連接配接成功之後會傳回給用戶端200,表示驗證通過,就這麼簡單,下面是具體的信令格式:
CONNECT 124.xxx.xxx.xx:443 HTTP/1.1 //建立http隧道要443端口
Proxy-Connection: Keep-Alive //用戶端到伺服器端的連接配接持續有效
Content-Length: 0
Host: 124.xxx.xxx.xx //主機位址
Proxy-Authorization:Basic YTph //身份驗證資訊
User-Agent: OpenFetion //可以辨別請求者的資訊,如什麼浏覽器類型和版本、作業系統、使用語言等資訊
其中Proxy-Authorization是身份驗證資訊,Basic後面的字元串是使用者名和密碼組合後進行base64編碼的結果,也就是對username:password進行base64編碼。
其實編碼對安全性沒什麼意義,base64嚴格意義上都已經不能算是加密了,現在資訊安全這麼受重視的年代,不需要密鑰的加密算法還是叫編碼更貼切一些,抓到這種包之後瞬間就可以得到使用者名和密碼。
HTTP/1.0 200 Connection established
用戶端收到收面的信令後表示成功建立連接配接,接下來要發送給遠端主機的資料就可以發送給代理伺服器了,代理伺服器建立連接配接後會在根據IP位址和端口号對應的連接配接放入緩存,收到信令後再根據IP位址和端口号從緩存中找到對應的連接配接,将資料通過該連接配接轉發出去。

HTTP隧道技術
簡單的說,HTTP隧道技術就是把所有要傳送的資料全部封裝到HTTP協定裡進行傳送,HTTP隧道技術幾乎支援了所有的上網方式,如:撥号上網、ADSL、Cable Modem、NAT透明代理、HTTP的GET型和CONNECT型代理、SOCKS4代理、SOCKS5代理等。
另外HTTP隧道技術也用于木馬的制作,如把HTTP資料包裡Agent段設為IE,對外端口為80,然後把自己的小馬注入IE程序,哪個防火牆能分辨出它是木馬在發送資料?