Charles 抓包原理与实践

一、介绍

        Charles是一款移动端抓包工具,这具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等优势;Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

二、原理

        Charles 的工作原理就是:对客户端伪装成服务器,对服务器伪装成客户端。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。 过程中,Charles需要拿到服务器证书公钥 和 HTTPS连接的对称密钥,前提是客户端选择信任并安装Charles的CA证书。

Charles 抓包原理与实践_第1张图片

三、浏览器抓包

      Charles 会自动配置PC端浏览器和工具的代理设置,因此打开 Charles 直接就已经是抓包状态了。直接打开网页就可以使用。注意两点:一是支持抓去http、https协议的请求,不支持socket。
二是防火墙关掉,点击上方的代理—windows代理。

        安装证书:
         如果是https请求,可能会出现乱码,还需要安装一下证书:点击Help(帮助) → SSL Proxying(ssl代理) → Install Charles Root Certificate(安装Charles根证书)→点击安装证书 → 存储选择本地计算机→点击将所有的证书都放入下列存储→点击受信任的根证书颁发机构,确定,下一步;→完成。

Charles 抓包原理与实践_第2张图片

Charles 抓包原理与实践_第3张图片
Charles 抓包原理与实践_第4张图片
Charles 抓包原理与实践_第5张图片
Charles 抓包原理与实践_第6张图片

 抓https设置:
 在Proxy里设置,点击Proxy下的Proxy Settings → 勾选Enable项→配置SSL Proxy Settings→点击SSL Proxy Setting→点击Add添加 → Add 443Port和80Port添加完点击Ok → 配置完毕,重启即可。

 四、过滤请求

        由于所有的网络请求都会被抓取,信息太多会对分析造成干扰,因此可以过滤接口的请求。过滤接口的请求方式有 2 种:底部 filter  直接过滤 和 代理 --> Recording Settings 设置。
        直接过滤:直接在 Charles 的 Filter 这栏中填写你要过滤的关键字即可。
        Recording Settings 设置 :选择 Proxy-->Recording Settings。接着在弹出的对话框中,选择 Include, 然后点击 Add 按钮,并按照你的需求设置 Filter。注意:如果你什么都不填写,就表示全部符合条件。

 五、App抓包

        Charles也能够抓取来自App发出的HTTP请求,手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络。
        电脑端配置
        启动安装好的Charles抓包工具; 点击【Help】-->【local IP Address】获取下ip地址。

        点击【Proxy】-->【Proxy Settings】,设置端口号“8888”;

        手机端设置:
        打开手机的设置页面; 选择【无线局域网】; IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例) 点击【配置代理】-->【手动】;输入本机【IP地址(192.168.0.104)】以及端口号【8888】,这是我本机的,根据自己情况合理配置; 点击【存储】
        验证:看到Charles里能抓到这个连接,就说明配置没问题,若是unknown,表示没有安装针对手机端的证书,安装即可。
        

六、抓取手机HTTPS协议

         Charles配置
                点击顶部菜单栏【Help】-->选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书;跟上面一样。

        

七、弱网测试

        Charles配置弱网测试,设置代理,限流设置;设置点击【Proxy】-->【Throttle Setting】 ,勾选上【Enable Throttle】,也可以勾选【only for selected host 】 意思是设置一个指定访问进行网络限制,不影响其他软件; 在【Throttle preset】选择常见预设的网络情况,也可在Bandwidth 自己设置网络的上传和下载速率。

        

八、挟持和篡改数据        

        未完待续。。。。

九、如何精准抓包

        1、如何抓到需要的数据报文?路径、过滤、record settings;
        2、如何转到基于https协议的数据报文?安装ssl根证书,设置https代理配置,看前面;
        3、抓取APP的数据报文?处于同一网络;设置手机代理,下载设置手机的根证书;

你可能感兴趣的:(Charles,p2p,linq,gnu)