iOS低频高技收集iOS奇技淫巧

Charles踩坑记录

2017-11-08  本文已影响159人  编程小翁

Charles的妙用在于能够伪装成中间人干预https通信。它使用了中间人代理的方法(man-in-the-middle,也常作为一个黑客攻击手段),代替你的app接受server的证书,然后使用这个证书通过SSL和server通信;同时,Charles会动态的生成一个对应的证书(用Charles的CA证书签名),然后使用这个证书和你的app通信,这样就完成了一个中间人代理,从而可以把app和server的https包给抓到和解码出来。

一、真机安装根证书

总体步骤是:safari安装根证书 ---> 添加需要检测的域名列表 ---> 抓包分析

1、首先要安装Charles的根证书,用iOS设备的safari打开http://www.charlesproxy.com/getssl,会弹出一个提示框让你安装证书,确认安装即可。然后到设置->关于本机->证书信任设置中信任Charles根证书

2、打开菜单Proxy -> SSL Proxying Settings...,在弹出的设置框中,勾选Enable SSL Proxying,同时添加需要代理的域名,端口号统一为443(这里直接设置成了*来代理全部https域名)

3、可以通过breakpoint修改请求或者返回数据

二、模拟器安装根证书

模拟器安装根证书比较简单:

image

坑:安装后需要重启模拟器才能正常抓HTTPS包

三、MAC安装根证书

直接在Charles的Help菜单中安装;安装完成后去系统的钥匙串访问中右键证书信任它。

四、可能踩到的坑

1、没有安装Charles的证书,却开启了Enable SSL Proxying,那么会造成所有的https访问都会失败,同时Charles会在每个https请求的overview那里友好的提示你需要信任Charles的根证书:“You may need to configure your browser or application to trust the Charles Root Certificate”,意思是根证书安装失败。这时重走第1步就行。

image

2、通过断点的方式修改请求时,客户端的请求超时计时器一直在走,因此可能导致超时,这点要注意下。

上一篇下一篇

猜你喜欢

热点阅读