charles与fiddler抓包

charles介绍及工作原理

介绍

charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境。

Charles是在 常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 HTTP协议

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

主要功能

1、截取 Http 和 Https 网络封包   抓包

2、支持重发网络请求,方便后端调试

3、支持修改网络请求参数

4、支持网络请求的截获并动态修改

5、支持模拟慢速网络

工作原理

截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求

接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容

原理案例

租房子:   房客    中介   房东

网页抓包

web端http抓包

手机抓包

1、查看电脑IP地址

win+r 打开运行 输入 cmd 打开命令

输入命令 ipconfig

2、Charles代理设置

proxy->Proxy Settings...->proxies->port:8888勾选Enabletransparent http proxying->ok

注意 端口不能有冲突

>

3、在手机设备、模拟器或者远程浏览器上设置代理

注意:抓取手机设备上的请求包(手机和电脑必须在同一个局域网内,并关闭电脑防火墙、其他代理或者翻墙软件)

第一步:在手机wifi 上设置代理 -> 长按无线网络-->修改网络-->高级选项-->代理 手动-->手动输入输入IP、端口号

服务器IP:PC机器的IP(通过之前介绍的查看IP的方法)

端口号:8888(通过之前介绍的查看端口的方法)

第二步:Charles弹出询问“allow”或者“deny”,点击“allow”按钮允许;出现手机的HTTP请求列表

4、常见问题

手机终端和计算机要在同一个网络中

端口不能冲突

电脑防火墙

allow


https安装证书

1、打开charles

2、选择help-ssl proxying

3、选择第二个选项  针对于web端

4、选择安装证书

5、选择将所有的证书放入下列存储

6、选择受信任的根证书颁发机构

7、下一步  完成

导出证书

1、打开charles

2、选择help-ssl proxying

3、save

4、选择存放路径以及证书名

导入证书

Charles 主界面介绍

Structure视图

Structure:树状结构显示,将网络请求按访问的域名分类;

Sequence视图

Sequence:水平结构显示,将网络请求按访问的时间排序

Proxy 菜单

过滤( Recording Settings )

Recording Settings

设置会话捕捉条件,include 面板用于启用/停止可以捕捉/显示的会话;

exclude 表示不显示的会话,在会话列表中右键选择 ignore 时,对应的url会出现在这里;

record_setting_add

比较好用的是过滤条件支持通配符,*表示任意多个字符,?表示一个字符,如Protocol中有http,https和 "",选择空白或者输入*都可以表示任意协议的请求;

Filter

过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求

断点功能

在会话列表中右键点击某个会话,然后在菜单中选择Breakpoints;

通过Proxy-Breakpoint settings...中手动新建/启用某个断点;

要求勾选enable breakpoints之后当下次再有该请求时,会自动进入断点模式;

一个完整请求会进入断点模式2次:

1、request的发出之前;

2、收到服务器的response但尚未返回给客户端的时候;

断点request的时候,可以修改request信息,不过我们程序都有对请求header做校验和处理,修改参数后一般就直接报错了,所以这里看看response就好


fiddler抓http包

在打开的fidder中选中tools->options

在弹出的options对话框中选中capture  HTTPS  Conects    Decrypt 

Https  traffic    Ignoreserver    Certificate    errors(unsafa)

Actions->exprot  root  certificate    to  desktop

回到桌面双击 安装证书 (信任的根证书目录)

访问项目地址 ,进行https抓包   

fiddler手机端

查询本地IP地址win+r在运行中输入cmd,在打开的命令中输入ipconfig回车

在打开的fiddler界面中选择'工具'-菜单-选项-在打开对话框中选择connections

设置代理端口号为:8888  确定重启fiddler

在手机端无线网设置界面  长按选择‘修改网络’,在修改网络页面选择高级设置

代理服务器选择手动  输入代理服务器地址和端口号

手机访问项目地址  在fiddler中查看抓到的内容 

你可能感兴趣的:(charles与fiddler抓包)