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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前 评论

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