Charles08--常用代理配置

Charles代理设置

设置的主界面如下:

动态端口

启用动态端口选项来监听动态端口,每次查询启动时选择。这样可以避免与计算机上可能运行的其他网络服务的冲突,包括Charles的其他实例(如果是共享计算机)如果你开的端口很多,搞到你自己都记不清楚了,那么推荐你用这个;但是我都是写好一个端口的,比如代理写8888,别的就不会监听这个端口了,而且为了手机方便连接,都是使用指定好的端口。

注意;如果你charles设置了8888的端口,别的服务就不能再使用这个端口号了,否则冲突会发生意外的错误;

透明的HTTP代理

透明代理使Charles能够支持不支持HTTP代理服务器的客户端,或者不知道他们正在使用HTTP代理服务器,例如TCP / IP连接由路由器或防火墙重定向到Charles。这里可以被手机连接;

手机连接的时候,http代理那里写=选手动,并填写此时charles的本机地址和上面设置的8888端口即可;

options 里 主要是设置 绕过代理

这里可以设置您的浏览器/操作系统遇到哪些域名的时候,使用默认而不用Charles;配置的列表使用空格或逗号分隔,并在Charles配置其代理设置时注入浏览器。 有关详细信息,请参阅操作系统和浏览器特定选项卡。

后面系统代理和火狐浏览器的就不写了,主要是一些开关和配置,因为也不用火狐,都默认就可以了;

SSL Proxying Srtting

这里最常用的设置就是第一个ssl proxying,这里记录了需要捕获哪些ssl的信息;

注意,如果你不在这里设置,虽然你安装了ssl的charles证书,你依然无法正常捕获;

通过SSL代理,您的浏览器或应用程序将收到由Charles签名的证书,而不是来自远程Web服务器的原始证书。这将在您的浏览器或应用程序中触发警告,某些应用程序实际上可能会拒绝该连接。
您可以将浏览器或应用程序配置为接受Charles的证书;

具体请查看 http://www.charlesproxy.com/ssl 的说明,或者“帮助”菜单中的“SSL代理”菜单。

为在这里设置了通配符,表示为要捕获记录所有ssl协议的请求和响应;

具体请查看Charles的HTTPS抓包方法及原理

access control settings 访问账户设置;

这里可以配置连接到charles时的一些配置;

这个访问控制确定谁可以使用这个charles,

本机是永远都可以访问的,默认的访问控制列表如果是空的;

意味着除了这台电脑以外,没有任何设备可以使用charles。

如果你把下面的提示开始,未经授权的设备连接时候会提示你是否允许;

类似下面这种提示框

当你手机访问的时候,电脑会提示的;

这里设置后的host,连接时候是无需确认的;

external proxy 外部代理设置

有时候您可能需要使用网络上的代理服务器才能访问Internet。在这种情况下,您需要为Charles配置外部代理。

您可以为每种代理类型配置身份验证信息。 Charles支持基本身份验证和NTLM身份验证。对于NTLM身份验证,您可以输入“域名”选项。
如果您没有配置身份验证和外部代理请求认证,Charles会将验证请求传递给浏览器,就像Charles本身正在请求身份验证一样。

排除列表
您可以输入绕过外部代理的loacation列表。

该列表是空格分隔的,每个location都是一个主机或ip地址与可选端口匹配(例如hostname:port),并且支持通配符。
请注意:之前的Charles自动在排除location列表中进行了前缀匹配。

在Charles 3.5中更改了支持全局通配符的系统。

Web Inerface

Web界面可以让您使用Web浏览器控制查询,您可以访问 http://control.charles ⬆️的Web界面,当查询运行时,您可以启用此功能并配置下面的访问控制;

首先你必须要开启web inter face,否则你访问http://control.charles的时候就提示你没有开启;如下的提示;

Charles Web Interface

The Web Interface is disabled. You can enable it in the Web Interface Settings in the Proxy menu.

Charles代理设置常用步骤

点击Proxy菜单中的代理设置:Proxy Settings

Charles抓包设置代理

如果想要抓包,第一件事情,就是把charles设置成为本机和服务端之间的”过滤器”;让所有的网络请求全部经过charles,这样就可以捕获并记录到你请求的内容和返回数据了,原理请参照上面那张图片;需要注意的是,如果你访问的是web,可以把所有请求抓到;但如果你想抓某些应用(比如手机上的应用等),应用使用的某些资源,如果没有向服务器发送请求,而是通过调用内部资源的方式进行展现,那么此时charles是抓不到的;验证这个的方式很简单,就是把网络断掉后,如果还可以继续展现,就是属于调用内部资源的,这种时候就不要想着通过抓包工具来捕获资源了,他都没有像服务器发起请求,手机点烂也抓不到的;

启动 Charles 后,第一次 Charles 会询问你是否把Charles设置为系统的代理,如果此时你忽略了这个询问敞口,你可以在后期设置的;将 Charles 设置成系统代理:选择菜单中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 来将 Charles 设置成系统代理,参考如下,如果Mac下有管理密码,需要输入密码后方可进行;

将charles设置为chrome的代理

需要注意的是,Chrome 和 Firefox 浏览器并不一定使用的就是本机,可能是一些代理工具,而 Charles 是通过将自己设置成代理服务器来完成资源记录的,所以如果你的charles无法截取 Chrome 和 Firefox 浏览器的网络请求内容,需要在浏览器里做下修改。在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

charles手机抓包设置和安装证书

charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候

手机抓包的原理,和PC类似,手机依靠charles与服务端进行对话;

目标:把手机的网络委托给charles进行代理;

手机抓包设置,需要进行3步;

第一步,在charles里设置允许手机联网的权限;你需要把charles设置为允许的状态并且设置允许的端口号,这样手机端才能正常的接入;

第二步,把手机按照charles的IP和端口进行配置;

第三步,手机配对成功后,charles还会弹窗是否允许;(charles虽然开放了端口,但并不知道是那一台手机会配入,此窗口起到提示和安全防护的作用;)

上面的三步,有点类似HTTP的握手原理,双方都保证正常通信后,就可以进行抓包;

第一步:设置charles为允许状态,并设置好接入端口:

在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图;

需要找到charles的本机IP;

点击HTLP -> local IP Address 可以看到当前的本机IP地址;

当然,你也可以在终端打开查看,比如window,cmd下;输入ipconfig可以查看本机的IP

此时我们可以看到,charles允许手机接入的IP和端口是 192.168.0.103:8888

此时如果你手工在浏览器输入 这个HOST会发现charles会提示一个窗口问你是否允许接入;

第二部:把手机按照charles的IP和端口进行配置

手机链接wifi,wifi的HTTP代理选择手动那项(安卓类似)

在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888

第三步,手机配对成功后,charles弹窗询问是否允许

设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单

如上图的弹窗,点击允许即可;此时已经配对成功,开始愉快的抓包吧;

比如此时,访问www.tmooc.cn

就可以电脑上就抓到访问的资源了;

因为本站用的是SSL,所以如果您的charles没有配置过,是抓取不到HTTPS这种加密协议的内容的;

如果需要抓取HTTPS网站的资源,请查看Charles的HTTPS抓包方法及原理

注意:需要明白一个可能存在的弊端,如果你把手机的上网相关事情委托给了charles,那么当charles出错或者没有开启的时候,此时手机必定没有办法正常上网;这个一定要了解,因为很多人把手机的IP委托给charles进行代理后,

第二天早晨上本的时候,手机wifi会默认链接你常用的高清度wifi;而此时的wifi的设置里面可能已经委托给charles了,但是此时电脑刚没有开charles或者重启后ip变动等;造成charles无法正常使用;由此而导致了无法上网的问题;

注意charles此种捕获方式,只能捕获发出请求的资源,如果是APP里,内部的代码和资源,因为没有向服务器发情请求,所以这是抓不到的;

判断是不是调用内部资源,你可以把手机的网络给断了,如果此时还可以正常的显示,说明该资源是写在APP内部的,通过代理的方式是抓不到的

Charles的HTTPS抓包方法及原理,下载安装ssl/https证书

本文的Charles,适应windows/MAC/IOS/Android,避免抓包HTTPS失败和乱码;

用的版本是V4.1.2,其它版本原理类似;

charles如果不配置SSL通用证书;

会导致HPPTS协议的域名抓取失败/乱码的现象;

现在SSL越来越多,很多博客都上了SSL,支付相关的行业更是基础配置;

charles配置SSL证书,算起来很简单,操作简洁;

首先分析我们需要怎么做?

第一步:电脑端安装 Charles 的 CA 证书(必须

charles需要下载安装ssl/https证书,因为charles是作为中间的过滤器使用的

这样你就可以访问PC端的https资源了,windows/MAC原理一样;

第二步:电脑上charles的SSL抓取设置(必须)

charles并不是默认抓取ssl的,所以即使你安装完证书之后,Charles 默认也并不截取 Https的信息,你需要在SSL proxy里设置需要抓的域名;

当然如果你想抓取手机端的HTTPS相关资源,还需要下面的第三步;
(还不会手机抓包普通HTTP的,请点击charles手机抓包设置)

第三步:手机安装SSL证书;

无论IOS/Android,都需要安装SSL证书,原理是手机的SSL证书与电脑上charles SSL证书对接;

具体的操作方法*****

第一步:电脑安装SSL证书

选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果设置了安全防护,会ranging输入系统的帐号密码。

会让你开始安装charles的证书操作;

默认下一步即可;

第二步,配置SSL的抓取域名;

你可以单独配置,必须看到某个想要抓取的域名,右键点击“SSL proxying :Enableed”那么当前你设置后的域名,再次访问就可以抓到了;设置如下图

可以看到我上面的配置,那个“SSL proxying :Enableed”配置 默认就是灰色的,这是因为我做了通用设置的原因;我是设置为所有的HTTPS协议全部允许捕获;

我的设置如下;

首先找到proxy – SSL Proxying Settings;

然后选中启用SSL代理(Enable SSL Proxying),因为charles的location配置都是支持通配符的,所以在HOST里设置一个”*”就可以了,port不写;

如果你需要配置某个指定域名,也是在这里填写的;

配制特定域名的时候,一般port为443(SSL常规为443);

这样,你就可以愉快的抓取到HTTPS的内容了;

第三步:手机安装SSL证书(如果你需要抓取手机访问的HTTPS网站,需要做此设置,但如果你不需要手机抓取HTTPS,就没有必要安装了)

和上面类似,也是HTLP下面的 SSL Proxying,选择”Install Charles Root Certificate on a Mobile Device or remote Browser” (在移动设备或远程浏览器上安装SSL证书)

然后会看到一个弹窗,提示你该怎么操作

configure your device to use charles as its HTTP proxy on 192.168.10.108.8888,then browse to chls.pro/ssl to download and install the certificate

大概的意思是让你把手机上的wifi信息设置了 HTTP代理,内容是192.168.10.108.8888;然后用浏览器浏览chls.pro/ssl就可以下载并安装证书了;

charles的手机上抓取普通HTTP的设置,请参考“charles手机抓包设置”这里只是抓取HTTPS的;

上面的 192.168.10.108.8888 这是我电脑的IP和设置和设置的端口,具体要以你实际的为准;

当你完成手机的wifi委托为charles作为代理后;

打开手机上的浏览器访问chls.pro/ssl;然后会跳到一个安装描述文件的地方;

直接安装就可以了;

我的已经安装好了,就不再进行演示了

好了,现在去看看吧,已经可以正常捕获到HTTPS的了;

上一章访问我自己博客的https抓包记录

MacOS系统客户端代理设置

1、左上方“苹果”-> 系统偏好设置 -> 选择“网络”
2、点击“高级” -> 选择“代理”选项卡
3、勾选“Web代理(HTTP)” -> 设置Web代理服务器IP地址和端口号
4、勾选“安全Web代理(HTTP)” -> 设置Web代理服务器IP地址和端口号
应用场合:
当MacOS客户端与运行Charles的主机是同一台计算机时,可以通过快捷代理方式进行设置
操作步骤:
打开Charles,选择“Proxy”菜单中的“macOS Proxy”选项

IOS系统客户端代理设置

1、在IOS手机中选择“设置”->“无线局域网”
2、点击已连接的无线网络名称
3、在HTTP代理的配置代理中选择“手动”
4、输入服务器IP地址及端口,点击“存储”

Android系统客户端代理设置

1、在Android手机中选择“设置”->“WLAN”
2、长按已连接的无线网络名称,点击“修改网络”
3、勾选“显示高级选项”
4、在代理选项中选择“手动”
5、输入代理服务器IP地址及端口,点击“存储”

posted @ 2021-10-29 15:56  暄总-tester  阅读(1166)  评论(0编辑  收藏  举报