使用charles抓包http、https
前言
学会抓包不只是一个程序员的基础技能,测试或打算从事计算机相关的人,都可以尝试掌握该基础技能
本文讲解使用 charles
抓包,当然也可以选使用 Wireshark
,这两款是我是用过的感觉还不错的抓包工具(其实就接触了这两款????)
这里以抓包 ios app
为例,实际 android
上也类似,手机抓取步骤配置完毕,mac端自然也能抓取成功了(以网页
为例)
抓包 http
抓包 http
比较简单,一共分为三步:
1、获取 pc
端在路由上的 ip
地址
2、手机和电脑连接上一个同一个wifi
,在手机上设置wif代理地址
,为 charles
所在电脑的 ip
地址
3、打开应用抓包
获取 ip
获取 ip 的方式有很多种,常见的,打开 charles
,按照下图所示,help -> Local IP Address即可
或者直接打开命令行,输入 ifconfig
或者 使用 ifconfig | grep “inet”
筛选出 ip 地址(注意使用路由
中的 ip
地址)
设置代理
将手机和电脑点解同一个wifi
,然后设置代理 手动
, 设置代理服务器为 pc端ip地址
,端口 8888 即可
charles
出现下面弹窗,请点击 allow
测试
测试,发现已经能抓到 http
请求内容了
同时也会发现,https的请求无动于衷,没有被咱们的操作感动到,均为乱码状态,后面介绍下https
请求的抓取
抓包 https
如果想理解 https
的包是如何抓取的,可以先了解下 https
的原理, 我也有两篇文章有介绍这个 https与AFNetworking、https与中间人攻击,抓包可以理解为扮演了中间人
,看了也许会对你有所帮助
https抓包主要分为4
步:
1、像 http
设置一样,处理好 ip、代理设置
问题
2、mac端安装代理相关证书,手机端安装相应描述文件,以便于抓取数据(为了 https 证书校验那一步证书列表校验
处理,如果是本地证书校验,那么 charles
则会抓取失败)
3、charles
设置 SSL代理
相关内容
4、对 https
接口抓包
mac端安装证书
在 charles
中 选择 help
-> SSL Proxying
-> Save Charles Root Certificate
选择后会生成一个证书,直接放到桌面即可,双击加入证书列表
打开钥匙串,从证书列表中找到他,双击,选择始终信任即可
安装手机描述文件
在 charles
中 选择 help
-> SSL Proxying
-> Install Charles Root Certificate on a Mobile Device or Remote Browser
然后会弹出下面的弹窗,意思就是,设置好第一步的ip代理
,然后打开浏览器
(safari), 输入地址: chls.pro/ssl
,然后跳转下载描述文件即可
设置好代理后,出现下面弹窗记得 allow
下载完毕描述文件后,在设置中,点击信任
即可
抓取 https 接口
在 charles
中 选择 help
-> SSL Proxying
-> Proxying Settings
在 SSL Proxying
中, 左侧的 Include
栏中,点击 add
,如下所示设置 host
为 *
(任意host), port
为443
然后就抓取成功了
抓取mac端网页
和配置手机https
的抓包步骤类似,只是不用往手机上安装描述文件了,SSL代理
中 host
配置为 *
,port
为 443
,以抓取掘金网页为例,一步到位
最后
相信眼尖的童鞋已经看到了,手机上有些 https
的请求并未抓取成功, 了解https原理
的童鞋相信能猜到原因,在https
中的证书校验
规则中就被筛掉了,一些app
或者一些接口服务
,采用了本地证书校验等方式
,这种情况是没有办法伪装破解的,例如:微信、掘金等,都抓取不成功的,我也是找了好些app才能抓取的 ????
作者:剪刀石头布啊
链接:https://juejin.cn/post/7029602655022350367