没有在APP STRORE上线。证书无法再苹果里面工具无法伪造对应的SSL证书,如果替换,对应的APP会默认删除。
这里就说下抓包的IOS APP HTTPS包
下载安装:CHALESPROXY
http://www.charlesproxy.com/
设置
在Charles中开启并设置HTTP代理和SSL代理,Menu -> Proxy -> Proxy Setting,设置如图:
HTTP代理设置,注意记住端口号为:8888
中间人攻击步骤方式的上文已经说过了,流量劫持相关操作不是本文重点,可以参考流量劫持是如何产生的?, 本例直接使用Charles来做代理,对流量进行劫持。并使用SSL代理来模拟下对iPhone设备HTTPS请求的中间人攻击,让大家在思考理解中间人攻击方式的同时,了解在开发中如何防范类似的攻击。 1) Charles设置代理 在Charles中开启并设置HTTP代理和SSL代理,Menu -> Proxy -> Proxy Setting,设置如图: HTTP代理设置,注意记住端口号为:8888
SSL代理设置,在locatio{过滤}ns上可以设置想要进行SSL代理的域名,这里以百度的百付宝*.baifubao.com为模拟对象。
2) 在iPhone端设置HTTP代理 在Mac上获取当前机器的IP地址: ifconfig en0:
还有一个简单的方法,按住option+点击顶部菜单栏的WiFi网络图标:
可以看到当前电脑的IP地址为:192.168.199.249。 将iPhone连接到与电脑相同的WiFi,在iPhone设置中:无线局域网 -> 已连接WiFi右边的Info详情图标 -> HTTP代理 -> 手动 -> 设置HTTP代理:
设置完成之后,打开Safari随便访问一个网页,初次设置代理的话,Charles会弹出一个iPhone请求代理的确认框,点击Allow即可。然后在Charles上就可以看到iPhone上的HTTP请求了。为了避免Mac上的请求过多影响对被代理iPhone上HTTP请求的查看和调试,可以在Charles取消Mac的代理:Menu -> Proxy -> 取消勾选Mac OS X Proxy 即可。 假如你访问的是被代理的目标 URL http://www.baifubao.com 则打不开网页。因为iPhone的HTTPS请求已经被Charles拦截,但iPhone无法信任Charles的证书,所以SSL Handshake失败,无法建立HTTPS连接。
3) 伪造证书欺骗 在被代理的iPhone上打开Safari,访问http://www.charlesproxy.com/getssl,会弹出安装描述符文件的界面,该描述文件包含了Charles根证书:
注意:这个Charles证书是内置在Charles中的,可以在菜单Help -> SSL Proxying可以直接保存和安装证书。安装后的描述文件可以在iPhone设备的设置 -> 通用 -> 描述文件进行查看和管理。 “安装”完成之后,就会将Charles根证书加入系统可信任证书列表中,使用该证书签发的子证书也会被系统信任。Charles会为之前SSL代理设置中配置的域名生成对应的SSL证书,这样伪造证书的证书就实现了欺骗。可以使用Mac SSL代理查看下:
4) 结果验证 下载百度App,然后登录账号,在我 -> 我的钱包,就会访问百付宝:
看到已成功获取到HTTPS请求包的内容。从这里,我们可以猜测出该App是使用系统默认的校验方式:系统信任了这个中间人服务器返回的SSL证书,App就信任了这一校验,SSL握手成功;而没有对服务器证书进行本地对比校验。这是当下非常多App存在的安全隐患。
|