Charles 手机抓包记录

file

Charles 很早之前用过,后来一直不用都忘记怎么使用了。近期公司叫我去测试一个小程序的安全性,第一时间想到了用 Charles 抓包分析,这里记录一下过程方便后续查阅

安装

这里有一个 Charles 4.2 的版本 下载后将 .jar 文件拷贝到 Contents/Java 里面。

简介

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

Charles 界面介绍

file

不过我个人更喜欢这种模式查看,这样会按照域名分类归档,更方便我看网络请求

file

代理设置

打开 Charles 后将它设置成代理服务器,这样手机上访问 app 的时候就可以监听网络请求。

file

想要解决手机上面的网络抓包还需要一些设置,在 Charles 菜单栏上选择 Proxy -> Proxy Settings,填写代理端口 8888,并且勾选启动代理。

file

手机设置

这里我以 iPhone 为例,首先我们需要获取电脑的 IP 地址,可以在 Charles 帮助栏找到

file

file

我们记住这个地址,然后打开手机找到链接的 WiFi 「注意这里电脑和手机必须链接同一个 WiFi」操作如下:

file

file

配置代理选择手动,然后下面输入 Charles 帮助栏显示的 IP,端口为 8888

file

点击储存的时候,电脑上面会弹出一个 Charles 的消息框,点击 Allow 运行。

SSL 配置

手机访问 HTTPS 网站的时候会显示 unknown ,这是因为 https 是加密的,我们的配置一下证书。

file

电脑端 SSL

先设置电脑上面的证书操作如下:

file

下面这一部如果证书是信任的可以忽略

file

Charles 需要设置要监控的网址,这里我们设置监控所有

file

file

电脑设置完毕

手机端 SSL

手机证书设置如下:

file

点击后如下图所示,用 iPhone Safari 访问这个地址「注意要用 Safari 浏览器」,然后安装证书

file

证书安装完后还需要信任这个证书,在手机「通用 -> 关于本机->证书信任设置」中开启信任

file

Ok 到此为止所有设置完毕

现在你可以打开手机 App,然后 Charles 会抓下所有请求的包,效果图:

file

PS

仔细按照上面的操作进行哟,不然你可能会遇到抓到 https 的网址数据乱码,或者 unknown 的问题。

哈哈。结果我去测试的那个小程序没有 Token 认证,意思是所有接口都对外暴露。。。。然后所有请求的参数都是 base64 编码的「浅加密」,我只要解码改几个参数,再编码请求就得到他们数据了。。。

PS

感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢关注「GitHub 热门」公众号
本帖由系统于 5年前 自动加精
Destiny
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 22

再这样我报警了....

5年前 评论
Destiny

@crazy :flushed: :flushed: :flushed: :flushed: :flushed: :sweat_smile: :sweat_smile:

5年前 评论
Destiny

@crazy :flushed: :flushed: :flushed:看这表情多可爱。你不会报警的。

5年前 评论
circle

留着等买了 mac 再来折腾这个

5年前 评论
Destiny

@circle 嗯嗯,买一个。之前我用 window 开发,换成 Mac 之后真的感觉效率提高不少,编码质量也特高不少。 :flushed: :flushed: :flushed:

5年前 评论
Artisan

这个有用,能搞很多事情

5年前 评论
Destiny

@Artisan :grinning: 对呀。。。

5年前 评论

安卓机怎么安装手机端的证书?

5年前 评论
Destiny

@839891627

两种方式:

  1. 第一种安卓手机访问 chls.pro/ssl 「安卓手机我没试过应该可以吧」
  2. 第二种点击 charles 下面这个选项,保存 cer 格式文件,然后传输到手机上面安装

file

file

5年前 评论
程序猴的进化史

感谢~ 此教程干净简洁 喜欢 给楼主点个赞 macbookPro 终于要加新特技

5年前 评论
Destiny

@程序猴的进化史 :kissing_heart: :kissing_heart: :kissing_heart: :kissing_heart: :kissing_heart:

5年前 评论

可以加上改包、压力测试、反向代理等内容,再写一篇进阶文章:smile:

5年前 评论
Destiny

@Aufree :grin: :grin: 好的发哥。

5年前 评论

来,客官们请移步 使用Charles抓包,还讲了Charles的一些高级操作哦。

5年前 评论
Destiny

@fanhaobai 666 厉害啦

5年前 评论
程序猴的进化史

@Destiny 突然使用中发现了问题:

  1. 使用新的macbook 安装证书会要你选择 登录 、项目、 系统,选错貌似死机了直接重启了。不知道有人遇到没
  2. 证书安装后可以抓包,但是你只要关闭 cahrles 软件,浏览器就无法访问,我后来找到原因。chariles 的HTTP 代理 不使用要及时关闭,要不然浏览器无法访问网络。
5年前 评论

苹果有个叫thor抓包软件很不错,配合Anubis使用更棒!

5年前 评论

安卓直接用AppTrace

5年前 评论

这比fiddler好用多了

5年前 评论
panda-sir

:sweat_smile: 一直都是用fiddler

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!