Android 7.0+配置Burpsuite证书

好久不见

很久没有更新博客了,今天折腾Android 的几个测试工作,遇到点问题,记录一下。

安卓模拟器

测试了各种各样的模拟器,最终还是确定了两款:

  1. 网易Mumu模拟器
    网易Mumu基于Android 6,而且支持Mac和Windows双平台。是目前唯一一款支持Android 6的模拟器(x86平台不算),无广告,速度快,首推。唯一有缺陷的是标签架构,开一个App就是一个标签,导致我测试的时候,有个App用了密码键盘,在调用密码键盘时会输入不了。
  2. 夜神模拟器
    夜神也支持Mac和Windows双平台,但是Mac只有Android 7可选,Windows下可以使用Android 5和Android7,不过Android 5现在基本上已经废了。缺点就是要使用VirtualBox,体积大,速度略慢但可以接受。

如何在Android 7下安装Burp/Charles证书进行抓包

该证书并非来自可信的授权中心

按照网上那些老掉牙的文章,都是导出一个Burp/Charles证书之后,adb push到模拟器,然后修改后缀为crt直接安全,这种方式在Android 6及之前的版本可用,从Android 7.0开始,Android更改了信任用户安装的证书的默认行为,应用程序仅信任系统级CA。这样就导致安装证书后,如果尝试通过Burp或者Charlse代理访问https网站,系统会提示“该证书并非来自可信的授权中心”:
在这里插入图片描述

解决方案

我们可以将Burp或者Charles的证书作为系统级别的信任证书安装。建议重新生产burp证书并重启burp后再导出。系统级别的受信任证书以特殊格式存储在/system/etc/security/cacerts文件夹中。我们可以将Burp的证书写入此位置。
导出Burp的证书后,使用openssl来做一些改动:

openssl x509 -inform DER -in PortSwiggerCA.crt -out PortSwiggerCA.pem
openssl x509 -inform PEM -subject_hash_old -in PortSwiggerCA.pem|head -1
mv cacert.pem <hash>.0

在这里插入图片描述
然后使用adb将<hash>.0文件push到模拟器的/system/etc/security/文件夹中,并将权限修改为644:

adb push <hash>.0 /system/etc/security/cacerts
adb shell chmod 644 /system/etc/security/cacerts/<hash>.0

然后我们就能在系统级证书里面看到Burp的证书了:
在这里插入图片描述
这样就可以继续抓包了。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值