Charles4.2.8抓包(http+https)
Charles 和 Fiddler 一样都是http抓包工具。
之前用 Fiddler 抓个别 ios 手机 https 报文时总卡在哪里返不回任何数据,后来怀疑是 Fiddler 问题,就考虑使用 Charles 。最后发现是我使用问题 错怪了Fiddler。
http抓包
http抓包配置很简单就是使用 Charles 作为代理服务器。
1、从官网下载 charles,根据你的系统选择合适版本即可
https://www.charlesproxy.com/download/
2、安装 charles, windows 一直 下一步 即可
3、代理配置 proxy-》proxy settings
4、按如下配置
a)端口号默认8888也可以改
b)勾选 Enable transparent HTTP proxying
5、查看ip地址
可以在cmd中输入 ipconfig 或者help->Local IP Address查看ip
6、手机上配置
配置好ip地址和端口此时所有数据报文即可抓到
7、手机上设置代理后,Charles 会弹出链接确认提示框选择 允许(Allow)
8、到此就可以抓到包了,但https能够抓到但内容都是乱码(密文)
https抓包
https 与 http 抓包没有什么区别,区别在于 https 使用的 ssl 加密算法对数据进行了加密,也就是上图抓到的都是密文无法看到明文内容。所以咱们要做的只是安装证书,让手机使用咱们的证书进行通信,这样自然就可以看到明文了。原理如下图:
言归正传开始证书配置
1、安装证书
也是简单确定即可。这个安装的是移动证书,也就是给app等客户端使用的证书。如果你要抓本地浏览器 https 内容,点上边 “Install Charles Root Certificate”
本地证书安装,如果不需要抓本地包可以跳过。对于本地 https 如果不需要拦截修改等,浏览器F12即可查看
1.1 选择安装证书
1.2 选择本地计算机
1.3 选择证书存放位置,可以自定义一个更高的位置
1.4 选择存放到根证书中,然后 下一步 完成,至此本地证书安装完成
2、打开手机在浏览器输入 chls.pro/ssl,刚才安装移动证书时也会显示地址(此文只有 ios 手机配置,安卓手机配置雷同 参见:https://www.cnblogs.com/rslai/p/7794940.html)
3、访问后提示正在下载配置描述文件,点击“允许”即可
4、在 通用->描述文件与设备管理 中 安装 刚刚下载的 Charless 证书
5、charles中配置ssl
6、勾选允许ssl代理,并添加那些地址使用,点击add添加
7、host 和 port中输入 *,代表所有服务器所有端口都使用ssl代理
8、至此配置完成,部分 ios 手机就可以看到明文的 https 报文了。
为什么说部分呢?也就是开头说的 Fiddler 无法抓部分 ios 设备的 https 的报文。原因是高版本的 ios 还需要再启用根证书才行
根证书启用完全信任
1、设置->通用->关于本机->证书信任设置,找到 charles 启用即可,Fiddler 的话找到证书启用也就可以了。
2、此时 https 即可显示明文了
悲剧的vpn
之前一直在pc使用,一切正常。后来换用mac,按照之前方法安装后只要一抓https就卡死,之后提示unknown,捣鼓了很久无果。突然又一次莫名的好了,之后反复实验发现只要开着公司vpn就抓不到包。问题终于找到了原来是公司vpn检测使用的是伪造的证书给拦截了。
破解charles
最后的一个问题,此时 charles 只能使用30分钟,每隔30分钟需要重启一次。要么买一个,要么破解。
参考:https://blog.csdn.net/qq_25821067/article/details/79848589
参考文献:
https://jingyan.baidu.com/article/0aa2237561af1088cc0d64c9.html