最近,我不满足光猪圈健身个人的健康数据只能由官方App查看的问题,于是利用Surge抓取了请求,现在利用postman,或自己写个App,脚本等,都可以轻松获取App数据。

解密即抓取解密了请求中及返回数据。好处有以下几点。

  • 了解一些WEB,App是否偷偷传递了敏感数据到后台
  • 基于请求数据,自行搭建C端或者B端,比如一些开源App,知乎,掘金客户端等
  • Script编写实现一键功能,比如查话费,JD签到等

OK,这里就Mark下如何开启解密。

  • 这里以Mac端v4.0.3,iOS端v4.4.3为例
  • 针对解密,Mac端v3及iOS端v3起已支持,功能及命名存在些许差异

如上,按照数字顺序,依次打开HTTPS解密开关=>生成证书=>系统安装=>添加域名

iOS端的配置相对Mac端繁琐,首先要要将缺省浏览器设定为Safari,如果手机上无其它浏览器可忽视此设定要求。原因是Safari下下载证书后,系统才可以识别文件

接下来按照图示依次操作

安装成功后,还要General=>About=>Certificate Trust Settings,信任该证书,以Surge中显示为信任标志配置成功

最后,开启MiTM及增加域名设置

开启解密后,需要在Dashboard或iOS端的Utilities=>Recent Requests中查看解密后的body体

  • 这里以Mac端的dashboard来展示,且推荐使用Mac端来浏览。
  • 在Dashboard中查看解密请求,需要Enable HTTP Capture,否则还是不会解密body体
  • 注意箭头指向的小图标,如果解密成功会是这个颜色,若失败会提示MitM failed

如上即可看到请求及返回的body体

有时候需要Mac上浏览iOS端抓包数据,操作如下

  1. 开启远程控制器支持,Home=>More Settings=>Remote Controller

注意如果出现连接拒绝,请确认IP/端口/密码正确性,重试即可。

  • 开启了MitM,请求/回复处理过程会多一次解/加密,对性能有一点影响
  • 部分应用只允许特定证书,因此会失败
  • 应用使用了 Certificate Pinning,只相信特定的证书或者来自特定的 issuer 的证书。该情况下 MitM 无法正常工作。(如 iOS 系统对 apple.com 和 icloud.com 的相关请求)
  • 生成的证书是自签名证书,如果密钥泄漏,需要手动取消信任
  • MitM 失败和性能毫无关系,MitM 失败是客户端在握手期间主动断开连接所致,一般是因为客户端有 Pinned-Certificate 防御 MitM,或者是正好因自身逻辑取消了请求,也可能是你配置不当对非 TLS 请求尝试进行 MITM。
  • 利用Surge的HTTPS解密可以方便本地或者局域网内其它设备的网络请求,基于此,比如做个性化广告拦截等都具备了一定可行性,因此还是挺实用的
  • 需要注意,Surge依然无法完全替代Charles,fiddler,仅仅支持对于抓包有这些基本的feat而已。

--

--

--

Develop with pleasure!

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alan He

Alan He

Develop with pleasure!

More from Medium

Fantastic Symbols and Where to Find Them — Part 2

How the Monkees Set Me Up for Disappointment

GIFV to GIF: How to Save GIFV as a GIF? Solved

Understanding P-fast tries