抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

背景

最近有人反映说无法抓取app了,之前配置好的现在都不能用了,包括ios和android设备。我个人的手机(android 9.0)在之前也尝试过抓取,证书齐全,试了下,果然是不行了。

安卓7.0

经过

第一个https请求如下

image-20210510170123362

复制链接在浏览器中打开,捕获一切正常!而通过打开app发送这个请求,捕获到该请求,但app提示错误

image-20210510170152236

WTF?

由于app测试不多,不大关注,当发现这个问题后,进行了一系列尝试和百度,说法最多的如下:

image.png

附上安卓开发官方说明链接: https://developer.android.com/training/articles/security-config

意思是,证书分为系统证书和用户证书,而通常我们使用fiddler也好,charles也好,或者其他抓包工具也罢,当抓取https请求均需要安装该工具自备的安全证书。安卓7.0以下的手机,是信任这些证书的。而安卓7.0开始,用户自己安装的证书是不被信任的,会导致无法抓取https请求。

那么问题来了,我自己的安卓机一直是基于安卓9的,应该不是版本问题直接导致的。然后又想到,对于证书信任的问题,是否是原生安卓的某个地方配置的呢?

解决方法

问题原因还没明确,但问题得先解决啊,找到了一些解决方法。

……

综上,选择使用viturlxposed框架。

操作如下

1.安装apk https://github.com/android-hacker/VirtualXposed

📎VirtualXposed_0.18.2.zip (可直接下载解压后使用。)

2.打开app,点击下面的六个点(点击),点击添加应用。

image.pngimage.png

找到本机已经安装的app,勾选,然后安装。

弹出安装方式,选Virtualxposed即可。

image.png image-20210510170338976

安装完成以后,返回上一层,回到六个点的画面(其实是一个空的桌面),上滑可以看到环境内所有app。

可以看到app已经装好,下面就是见证奇迹的时候,点击打开他。

image.png image-20210510170449006

app打开了!切到抓包界面

image-20210510170700251

所有请求一览无余,返回值一切正常。

注意点

  1. 对安卓来说,该方式不限于使用哪个抓包工具
  2. 安装证书,保持同一局域网内,配置代理等操作和平常一样

IOS11及以上

原因

在ios更新到11以后,除了需要安装证书的时候安装下描述文件,还需要用户手动去启用证书。

解决方法

1.先正常安装描述文件

2.在【通用】–【关于手机】–【证书信任设置】找到安装的证书,开关滑动到右边,启用证书。

image.png image.png

评论