HTTP代理穿透原理
HTTP代理穿透原理
HTTP代理服务器中能够提供一种HTTP CONNECT代理服务,能够允许用户建立TCP连接到任何端口。通过CONNECT方法穿透代理的实现方法为:
CONNECT代理服务器的代理端口(如:8080);如果成功返回就可以按照正常的Socket进行通讯。当然在此之前需要先获得代理相关的信息。
如何获取HTTP代理相关信息
程序中是通过读取注册表来获取计算机HTTP代理相关信息的,在注册表的\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings键值下就保存着HTTP代理服务器及端口等信息,
根据该键值下的ProxyEnable值可以判断是否有HTTP代理,没有代理的情况下ProxyEnable值为0。
当然一般情况下程序去中访问该键值可能是受限的,所有就需要获取到访问令牌不受限制的UserSid,使用该UserSid去读取HTTP代理信息。
通过HTTP代理代码片段
网络上摘一点代码,原理大概上能实现了的
memset(buff,0,sizeof(buff));
sprintf(buff,"CONNECT %s:%d HTTP/1.1\r\nAccept: */*\r\nContent-Type: text/html\r\nProxy-Connection: Keep-Alive\r\nContent-length: 0\r\n\r\n",lpszHost,nPort);
send(m_Socket,buff,strlen(buff),0);
........
memset(buff,0,sizeof(buff));
recv(m_Socket, buff, sizeof(buff), 0);
if(strstr(buff,"200 Connection")!=NULL)
return true;//连接成功
此外,如果是GET/POST代理你也可以模拟发post和get包,这个没什么说的,熟悉http协议就可以游刃有余的去编程了!主要是需要用大白鲨或其他http截包工具去分析调试。但是,对于客户服务端程序这样就需要额外添加一个中间跳板空间来中转数据。这本身又是很影响速度的。而post每次传输的数据还是有点经不起用。
HTTP代理穿透原理相关推荐
- 内网穿透原理和实现思路介绍
内网穿透技术,简单理解就是将内网的服务映射到公网中,这样可以随时随地访问. 那什么是内网?什么是公网?先从这个基本概念来简单介绍吧 1. 公网.内网和外网 首先声明,公网.内网和外网这几个概念,不是专 ...
- 通俗易懂:快速理解ipv4的NAT穿透原理
NAT基础 IPv4由于最初的设计原因,长度只有32位,所以只提供了大约40亿个地址.这造成了地址耗尽危机. NAT(Network Address Translation,网络地址转换),也 ...
- Nginx 反向代理工作原理简介与配置详解
Nginx 反向代理工作原理简介与配置详解 测试环境 CentOS 6.8-x86_64 nginx-1.10.0 下载地址:http://nginx.org/en/download.html 安装 ...
- java高级----Java动态代理的原理
Java动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程 ...
- Spring 初识Aop JDK动态代理实现 原理初显
Spring 初识Aop JDK动态代理实现 原理初显 一.项目结构 二.具体步骤: 1.创建maven项目 创建好包结构 2.写一个TestDao接口 及实现类 3. 写一个自己的切面类 4.jav ...
- MyBatis运行原理(三)接口式编程及创建代理对象原理分析
一.面向接口开发步骤 定义代理接口,将操作数据库的方法定义在代理接口中. 在SQL 映射文件中编写SQL 语句. 将SQL 映射文件注册在MyBatis 的全局配置文件中. 编写测试代码. 二.环境准 ...
- 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...
- 内网渗透-内网代理穿透和内网横向移动
内网代理穿透和内网横向移动 文章目录 内网代理穿透和内网横向移动 前言 内网代理穿透 nc termite(ew) ssh正向代理(A,B,C) msf设置路由和sock4代理访问内网流量 内网横向移 ...
- Java动态代理的原理
Java动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程 ...
最新文章
- 关键任务应用程序依赖于故障保护存储器
- 添加或删除jupyter notebook的虚拟环境
- 【数据结构】用栈解决表达式求值问题
- python中的字体英文名_对python opencv 添加文字 cv2.putText 的各参数介绍
- python逻辑运算符的使用_总结Python中逻辑运算符的使用
- Linux学习之常用技巧
- python打造社工脚本
- 2020-02-27
- 和秋叶一起学PPT之段落排版与字体(课时四、五)
- 网页端epub阅读器你试过吗?这些阅读器竟然这么好用,书迷必看
- 2021-2027全球与中国触摸屏人机界面(HMI)市场现状及未来发展趋势
- 数据清洗 Chapter01 | 数据清洗概况
- conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
- 漏洞分析---SSLv3降级加密协议Padding Oracle攻击(POODLE)技术分析
- Tensorflow.keras小案例Mnist数字识别
- Myeclipse中java文件注释格式设置
- 基于Hyperlynx VX.2.5 的DDR3仿真之一:Verifying That the Software Recognizes Your Design Correctly
- 用JavaBean封装数据库操作
- 大型直播平台应用架构浅谈
- android动画知乎,Android模仿知乎的回答详情页的动画效果