app的测试重点小部分在app本身,大部分还是在网络通信上(单机版除外)。所以在安卓app测试过程中,网络抓包非常重要,一般来说,app开发会采用http协议、websocket、socket协议,一般来说,http协议最多,websocket是后起之秀,socket最少,而针对http和websocket,burp suite工具是最适合不过的工具了。但是在遇到了app使用ssl或tls加密传输(https)的时候,由于证书不被信任,直接导致网络通信终端,抓包失败。本文介绍如何使用burp suite抓取https包。
一、工具准备
安卓手机一部(nexus4,原生安卓,未root)
笔记本(带有无线网卡,可以创建wifi热点)
wifi热点软件/同一局域网
burp suite软件(抓取http、https、websocket包)
二、抓包原理
通过burp suite代理方式,将手机的流量通过burp suite;导出burp suite根证书(portswiggerca.crt)并导入到手机中,手机的https流量将可以通过burp suite代理。
三、配置过程1. 保证网络能进行代理
因为burp suite是采用代理抓包方式的,所以要保证网络能够进行代理,不能被防火墙等阻隔,最好的方式是进行主机虚拟wifi热点。
2. burp suite配置
burp suite的proxy项目中配置代理ip及端口。
这里也可以为burp suite添加多个代理
3. 导出burp suite根证书
在火狐浏览器中,使用burp suite代理随意打开一个https链接,获取相关证书,并导出:
直接导出证书:
通过hfs.exe等工具,将导出的根证书下载到手机中,并在设置-> 安全 -> 从存储设备安装(证书) 选项中安装burp suite根证书:
4. 手机连接wifi热点,并设置代理:
手机连接我们刚设置好的wifi热点,并在高级选项中配置代理:
通过以上配置,app中的http流量就可以直接走burp suite了:
四、总结:
安卓app更多的都是采用http通信的,少数采用https的,这也是国内网络安全问题的现状。毕竟不加密的http通信节约带宽和系统资源,更多人直接采用非ssl或者tls加密的http通信,这也是导致网络嗅探如此流行、简单的原因。https的通信需要信任公私钥,所以只要有了密钥或者根证书,抓包就非常容易,这也直接告诉我们,如果访问正常网站,突然弹出让我们信任证书的时候,这时也许就是我们正在被嗅探。。。。。