zoukankan      html  css  js  c++  java
  • HTTP代理原理以及HTTP隧道技术(copy)

    http://hi.baidu.com/lifulinghan/blog/item/0e1d2754e4a46842d0090620.html

    通过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隧道技术几乎支持了所有的上网方式,如:拨号上网、ADSL、Cable Modem、NAT透明代理、HTTP的GET型和CONNECT型代理、SOCKS4代理、SOCKS5代理等。

        另外HTTP隧道技术也用于木马的制作,如把HTTP数据包里Agent段设为IE,对外端口为80,然后把自己的小马注入IE进程,哪个防火墙能分辨出它是木马在发送数据?  

  • 相关阅读:
    Docker实践之03-Dockerfile指令详解
    Docker实践之02-使用镜像及定制
    通过Hack方式实现SDC中Stage配置联动刷新
    多级部门查询性能问题解决方案
    Docker实践之01-入门介绍
    从阿里腾讯2朵云产品中学到的用户体验
    HttpClient在多线程环境下踩坑总结
    一次对JDK进行"减肥"的记录
    北京西站如何进站接人
    多实例集群部署下的图片上传和访问
  • 原文地址:https://www.cnblogs.com/ryhan/p/2248402.html
Copyright © 2011-2022 走看看