当前位置:网站首页 > 编程语言 > 正文

本地回环地址有什么用(本地回环地址什么意思)



Github: https://github.com/wanghongenpin/proxypin

ProxyPin运行机制是在启动了一个本地代理服务器(默认监听端口9099)来接收网络请求,当客户端与代理服务器进行通信时,ProxyPin会使用自签名SSL证书进行客户端SSL握手通信。为了保证客户端与中间人成功进行SSL握手通信,需要将ProxyPin的根证书安装到系统里。

桌面端:
    抓包软件会把系统网络代理设置为代理服务器的地址和端口,比如浏览器等其他客户端发送网络请求时,会将流量转发到代理监听的端口上,从而被ProxyPin代理服务器捕获。但是有些软件并不会读取系统代理信息,可以借助于其他软件(如Proxifier)将流量转ProxyPin。

手机端:
第一种配置Wi-Fi代理:
你可以将Wi-Fi代理配置成代理服务器的地址和端口,手机和电脑需要在同一个局域网下,这样系统会将所有流量转发给代理服务器,但是Flutter应用发起的请求不会走代理


第二种使用VPN服务:
VpnService会创建一个虚拟网卡,然后通过NAT,将所有的数据包转发到TUN虚拟网卡上去.
VPN程序读取该虚拟网卡设备上的数据,可以获得所有转发到TUN虚拟网络设备上的IP包。
应用程序会解析IP数据包,获取TCP/UDP数据, 如果是UDP会原文转发到实际的目标地址, TCP数据会判断是否是HTTP(S)协议包, 如果是将会转发到ProxyPin代理服务, 从而实现数据拦截处理.

HTTP协议是明文传出, 可以直接解析HTTP报文.

什么是HTTPS?
超文本传输协议安全(HTTPS)是HTTP的安全版本。HTTPS在HTTP协议的基础上使用TLS/SSL加密进行通信,以提高数据传输的安全性。

TLS和SSL之间有什么区别?
Netscape(网景)开发了名为安全套接字层(Secure Socket Layer,SSL)的加密协议,用于在网络上的两个设备之间创建安全连接.
但是,SSL是一种较老的技术,包含一些安全漏洞。传输层安全性协议(TLS)是SSL 的升级版本,用于修复现有SSL漏洞。TLS1.0版实际上最初作为SSL3.1版开发,但在发布前更改了名称,以表明它不再与Netscape关联。由于这个历史原因,TLS和SSL这两个术语有时会互换使用。
现在使用的都是TLS协议,目前常用版本TLS1.2或较新TLS1.3。

TLS/SSL如何工作

HTTPS为了兼顾安全与效率,同时使用了 对称加密 和 非对称加密。在TLS/SSL握手阶段,使用非对称加密来保证对称加密密钥在传输过程中的安全性,在 HTTPS 连接建立后,会使用对称加密算法对实际传输的数据。因为通常对称加密算法速度更快。

从TLS握手可知,我们如果想解密数据,可以在收到TLS Client Hello包时,响应给客户端自签名的证书,这样后续就可以用自签名证书解密密钥信息。但是由于我们自签名证书不是受信任机构签发的,所以需要把根证书安装到系统受信任根证书里。

如果你想拦截电脑流量需要在电脑上安装根证书,拦截手机需要在手机端安装证书

Windows根证书安装
点击安装证书或者双击证书文件进行安装,选择“受信任的根证书颁发机构

Mac根证书安装
点击安装证书或将证书文件拖拽到钥匙串系统证书里,安装完双击选择“始终信任此证书

iOS根证书安装
下载手机端ProxyPin, 在HTTPS代理菜单下载根证书或者通过配置WI-FI代理连接电脑访问进行下载证书。下载完整证书需要信任证书。

安装证书 设置 > 已下载描述文件 > 安装
信任证书 设置 > 通用 > 关于本机 > 证书信任设置

 

安卓根证书安装

所以Android7之后大部分应用需要把证书安装到系统下,才可以进行抓包。但是安装到系统里需要ROOT,您也可以使用MuMu等模拟器。

Magisk模块:
安卓ROOT设备可以使用Magisk ProxyPinCA系统证书模块, 安装完重启手机后 在系统证书查看是否有ProxyPinCA证书,如果有说明证书安装成功。
您也可以使用frida绕过安卓ssl pinning

无ROOT可以使用Xposed模块抓包,只能hook原生请求,flutter等请求无法处理。

捕获到流量之后,可以使用调试功能进行数据模拟等各种测试。ProxyPin提供了非常强大的调试功能,主要有重写、断点和脚本功能。

可通过重写规则来修改请求和响应内容。目前重写支持5种类型,分别是替换请求、替换响应、修改请求、修改响应和重定向。

替换请求
表示整体替换请求数据,支持替换的部分包括:请求方法、请求路径、请求头和请求体。

替换响应
此重写行为表示整体替换响应数据,支持替换的部分:状态码方法、响应头、响应体。

修改请求
相比于替换请求行为,修改请求提供了更加细致化的修改策略。例如删除查询参数,正则替换请求体的内容。

修改响应
基本操作同上面修改请求。

function onRequest(context, request)

在请求到达服务器之前,调用此函数,您可以在此处修改请求数据

具体参数格式见 > 参数定义

function onResponse(context, request, response)

在将响应数据发送到客户端之前,调用此函数,您可以在此处修改响应数据

参数定义

JS内置方法

File 文件操作

API和dart一致,见dart File文档 https://api.dart.ac.cn/stable/3.4.4/dart-io/File-class.html

Fetch API使用参考文档

到此这篇本地回环地址有什么用(本地回环地址什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 快速关闭程序(快速关闭运行的程序)2025-01-09 08:00:09
  • 网站制作代码怎么写(制作网站的代码)2025-01-09 08:00:09
  • lvm逻辑卷创建(lvs逻辑卷)2025-01-09 08:00:09
  • c0710故障码案例(c1076故障码)2025-01-09 08:00:09
  • 女神异闻录5战斗系统(女神异闻录5战斗系统攻略)2025-01-09 08:00:09
  • ewg是什么意思(ewg是什么的缩写)2025-01-09 08:00:09
  • 虚拟机win7有什么用(虚拟机win7好用吗)2025-01-09 08:00:09
  • 工具品牌排行前十名(工具品牌排行前十名)2025-01-09 08:00:09
  • 接口报错401的原因(接口报401怎么解决)2025-01-09 08:00:09
  • 流量录制与回放(流量录制回放是什么意思)2025-01-09 08:00:09
  • 全屏图片