绕过单向认证又多了一种尝试方式呢

环境:

夜神模拟器 Android7 32位

burpsuite

前提:

    已经在模拟器上配置了网络,并下载了证书。

     在burp上面设置了同样地址和端口的代理:

    配置代理+安装burp证书,只能满足于一部分的app截获数据包。但是对于大部分app而言,要通过其他方式绕过。

    这里采用frida+objection绕过app的ssl证书校验。当app采用单向认证时,可以使用此种方式尝试绕过。即客户端对服务器的证书进行了校验,而burp不能充当中间人的角色,拦截不到数据包,这里要做的就是在客户端关闭这个认证。

(1)单项认证-客户端校验服务端的证书。

(2)双向认证-客户端和服务器双向认证。不仅客户端要校验服务端的证书,也会在 app 内放一张证书,服务端会校验客户端里的证书。

1、下载frida-server

1
2
3
4
5
下载地址:https://github.com/frida/frida/releases

frida-server-16.0.2-android-x86 (模拟器是32位的)

frida-server-16.0.2-android-x86_64 (64位)

2、启动frida-server服务

    将frida-server用adb复制到模拟器的/data/local/tmp目录下:

1
adb push 本地frida-server路径 /data/local/tmp

    然后赋予最高权限:

1
chmod 777 文件名

    最后使用如下命令,开启Frida server服务:

1
./文件名

3、在本机安装frida和objection

1
2
3
4
5
6
7
在python3的环境下安装:

安装frida:python3 -m pip install frida-tools

安装objection:python3 -m pip install objection

(加上 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package安装会快一些)

4、查看包名

    在本机上使用如下命令验证frida安装成功,顺便查看需要测试的包名

1
frida-ps -U

5、启动objection

    保证Frida server开启后,在cmd中输入:

1
objection -g 程序包名 explore

6、绕过APP的SSL Pinning

1
android sslpinning disable

    成功绕过:

    注意成功之后,当退出应用即结束本次会话再进来,则可能又会抓取不到数据包。所以要重新进入程序时,结束之前的运行窗口,重新启动objection。