HTTP抓包工具之Charles

标签: 器→工具 工具软件 抓包 爬虫 | 发表时间:2021-11-02 09:20 | 作者:钱魏Way
出处:https://www.biaodianfu.com

Charles简介

Charles是一个HTTP代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles主要功能:

  • 支持SSL代理。可以截取分析SSL的请求。
  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 检查HTML,CSS和RSS内容是否符合W3C标准。

以上介绍了Charles的主要功能,个人在使用过程中主要用的是抓取HTTP和HTTPS请求。特别是HTTPS的请求,抓取起来还是有一些麻烦,特此记录。

Charles 抓包原理

市面上绝大多数的抓包软件,背后的原理都是中间人攻击(Man-in-the-middle attack,缩写:MITM)。

维基百科是这样定义 MITM 的:中间人攻击在密码学和计算机安全领域中是指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

上面的定义写的很清晰,下图中结合箭头方向就能看懂 HTTP Packets 的流向:

Charles的使用

Charles的安装过程是比较简单,只需到 官网下载安装即可。比较困难的是HTTPS请求的配置。

Windows下HTTPS请求抓包

1、配置SSL支持。点击【Proxy】–>【SSL Proxying Settings…】,在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】,在Host输入【*】表示接收任何主机,在Prot输入【*】表示任何端口,最后点击【ok】保存。

2、安装证书。点击【Help】–>【SSL Proxying】–>【Install Charles Root Certificate】,按照引导流程安装证书。

完成后打开IE进行测试:出现证书错误!

打开Chrome测试:

打开Edge测试:

都被安全拦截了,装了证书都不起作用。

解决方案:安装Firefox!

安装完毕后在开启Charles时,使用Firefox打开,http://chls.pro/ssl,弹出如下页面:

选择保存文件后按确定。文件默认保存到下载文件夹。

打开Firefox【设置】–>【隐私与安全】–>【证书】–>【查看证书】

使用【证书管理器】–>【证书办法机构】–>【导入】进行导入操作。

iOS下HTTPS请求抓包

在PC上开启共享网络。将手机连接到PC共享的WIFI上。

在手机上设置代理地址,代理IP为PC的IP,端口为Charles的端口。

在手机自带浏览器Safari中输入chls.pro,完成后需要进入【设置】安装描述文件。安装完毕后,如果是iOS 10 以后需要进入【设置】–>【通用】–>【关于本机】–>【证书信任设置】,开启证书。

Android下HTTPS请求抓包

在PC上开启共享网络。将手机连接到PC共享的WIFI上。

在手机上设置代理地址,代理IP为PC的IP,端口为Charles的端口。

在手机默认浏览器中输入chls.pro,下载downloadfile.crt文件,然后在【我的下载】中进行打开,按引导进行安装。

相关 [http 工具 charles] 推荐:

HTTP抓包工具之Charles

- - 标点符
Charles是一个HTTP代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据. 它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息).

四谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles

- - 99css
在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网 http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到 Retinizer中把文字变清晰). 查看Mac电脑的IP地址,如192.168.1.7. 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888.

Charles抓取微信小程序数据包(HTTP/HTTPS) - 简书

- -
项目前台为小程序,为快速定位错误,使用Charles进行抓包分析. 硬件环境:MAC + IPhone6P. Charles(MAC)破解版下载. 打开Charles -> Proxy -> Proxy Settings. 设置端口号为:8888,并勾选'Enable transparent Http proxying'项.

mac下的抓包工具Charles

- - 膘叔
 在mac下面,居然没有好的抓包工具,这让我十分纠结,毕竟不可能为了抓一个http包就跑到win下折腾. 或许有人说tcpdump这么好的工具,你怎么不用. 说实话,tcpdump太复杂了,我还没有细看,再加上不是所见所得,所以,用起来不是那么习惯. 又有人说,wireshark怎么不用. 好吧,其实我是有装wireshark,只是启动的时候会启动XQuartz,有点慢,当然这不是主要的,而是wireshark功能太强大了,以至于都不会写过滤器.

HTTP DoS 攻击工具 Slowhttptest

- Le - 开源中国社区最新软件
Slowhttptest是一个依赖于实际HTTP协议的Slow HTTP DoS 攻击工具,它的设计原理是要求服务器所有请求被完全接收后再进行处理.

网站HTTP监测工具HttpWatch Professional

- - 软矿
如果你真在管理一个服务器或者一个网站,你肯定关心网站加载情况,包括查看网站的每个元素的加载时间、Cookies、消息头Headers、字符查询、缓存、错误、Post Data等. 笔者今天推荐一个专门分析网站HTTP的浏览器插件HttpWatch Professional,能够实现刚才我所提到的所有功能.

XMPP、HTTP 模拟压力测试工具 Tsung 教程

- - CSDN博客推荐文章
由于需要erlang支持,那么下载erlang-R14B04. 使用该脚本测试的时候,要禁用XMPP服务器的auth验证模块,不然账号密码不对,登陆不进去. 单个IP的端口65535的问题导致单个机器模拟的连接数有限,这个问题我没解决,只能通过使用很多机器都开这个服务来解决. 作者:smm11230704 发表于2012-4-17 3:21:36 原文链接.

wrk -- 小巧轻盈的 http 性能测试工具.

- - 企业架构 - ITeye博客
测试先行是软件系统质量保证的有效手段. 在单元测试方面, 我们有非常成熟的 xUnit 方案. 在集成测试方面, 我们 selenium 等自动化方案. 在性能测试方面也有很多成熟的工具, 比如 LoadRunner, Jmeter 等. 但是很多工具都是给专门的性能测试人员使用的, 功能虽然强大, 但是安装和操作不太方便.

HTTP协议调试工具汇总,你心目中应该是什么样的?

- - FreeBuf互联网安全新媒体平台
本文收集了大量抓包工具,近40款,涵盖了各种开发语言(Java,C#,Delphi,C,C++,Objective-C,Node.js,Go,Python)、各类前端(GUI,TUI,CUI,Web UI,Browser Addon),请大家赏析. 英国PortSwigger团队开发,用起来很顺手,安全行业占有率很高,闭源、收费.

使用Charles对Https请求进行抓包

- - 标点符
昨天对某个APP做分析的时候发现其请求是Https的,抓包工具不能正常的显示请求的内容及返回的情况. 通过搜索发现 Charles是支持针对Https抓包的. 证书下载地址:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/.