移动安全Android——解决APP抓包证书无效问题
问题
通过Burpsuite和ProxyPin进行代理抓包Android APP的时候发现虽然已经正确添加了用户证书,但是还是会出现SSL握手错误,证书无效问题。这是因为Android 7 以上版本APP默认不信任用户证书,只信任系统证书,所以需要将用户证书移动至全局系统证书才能抓到HTTPS的流量包。
Burpsuite
(1)手机和电脑连接同一个WIFI,或者保证手机和电脑在同一个局域网下,Burpsuite设置监听
(2)手机网络代理设置为Burpsuite的监听地址
(3)手机浏览器访问Burpsuite监听地址进行证书下载,默认证书后缀是.der需要修改为.cer
(4)手机根据以下路径安装刚刚下载的Burpsuite证书
设置-->系统安全-->加密与凭据-->从SD卡安装
(5)手机打开APP应用进行抓包测试,出现抓不到包并且提示证书未正确安装的问题。这是因为通过上述步骤安装的证书为用户证书,APP不信任用户证书,所以出现证书未知问题。
(6)在手机以下路径中找到刚刚安装的Burpsuite用户证书
/data/misc/user/0/cacerts-added/
(7)将其移动到系统证书目录中
/system/etc/security/cacerts
(8)确认PortSwigger是否已经添加成为系统证书并且是开启状态
设置-->密码与安全-->系统安全-->加密与凭据-->信任的凭据
(9)再次打开APP尝试抓包,此时已经可以正常抓到HTTPS的流量包
ProxyPin
GitHub - wanghongenpin/proxypin: Open source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems
(1)Proxypin下载完成后,启用HTTPS代理选项,并导出根证书
(2)将导出的证书推至手机
(3)通过手机以下路径导入刚刚的证书
设置-->密码与安全-->系统安全-->加密与凭据-->从SD卡安装
(4)同样在以下路径找到新增的用户证书
/data/misc/user/0/cacerts-added/
(5)将其移动到系统证书目录下
/system/etc/security/cacerts
(6)确认ProxyPin证书已被正确添加为系统证书
设置-->密码与安全-->系统安全-->加密与凭据-->信任的凭据
(7)打开APP应用,可以正常抓到HTTPS的流量包