安卓APP测试,少量工作在Android组件等端侧,大部分还是集中在网络通信上。因此测试过程中,网络抓包很重要,一般来说APP会采用HTTP协议,Websocket,Socket协议。其中HTTP协议的最多,Websocket是后起之秀,Socket最少。针对HTTP和Websocket,Burp Suite是进行抓包的不二之选 。
下面记录配置方法,以备忘。
- 准备素材
安卓手机一枚
WIFI上网
Burp Suite一枚
- 手机侧配置
将PC与手机连入同一WIFI网络,查看PC侧IP地址,如IP地址为192.168.1.100
打开手机(以华为Mate截图为例),设置->WLAN,长按已连接,修改网络
配置代理服务器为PC的IP地址,端口8080(随便),连接
- PC侧配置
打开Burp Suite,Proxy->Options,设置代理服务器:
Intercept标签下,设置Intercept is on,现在可以对APP的网络数据进行抓包了,如下:
- 接下来还有个问题,如果想用sqlmap跑一下请求,有没有SQL注入,怎么做?
很简单,将每次经Proxy的请求保存到日志,sqlmap使用-l参数指定文件跑。具体设置:
如我们选择了sqlmap.txt文件保存Proxy请求日志。
E:\Android>sqlmap.py -l sqlmap.txt
这样来跑就可以。
- 如何抓HTTPS数据包?
我们测试重置密码,找回密码等功能,很多时候通信使用HTTPS加密的,如下设置可进行HTTPS抓包:
a)导出Burp Suite根证书
浏览器设置好代理后,访问http://burp/
下载一下burp suite证书,这里是der格式的,我们要cer的,使用火狐浏览器转,导入并导出下就可以了。
b)在手机中添加信任证书
将导出的证书PortSwiggerCA.crt上传到手机,安装之。(下面截图是Mate8的,各手机位置可能不一样)
以下,某p2p网贷APP重置密码抓的包,使用的是HTTPS:
另外,像我司这种平常上网就要挂代理的,Burp Suite配置方法如下:
- Burp中Options->Upstream Proxy Servers,配置原Proxy(你原来上网的)。
- Proxy->Options->Proxy Listeners配置代理,127.0.0.1:8080(burp作为代理服务器)
- IE里修改代理为127.0.0.1:8080,数据路径为:IE(Browser)->Burp Suite->原Proxy->web服务器