手机app抓包https请求信息,解决SSL Pinning验证

抓包工具:

Charles,fiddler,wireshark

其中,前两个用于抓取https请求,wireshark则是包含tcp/udp在内的所有请求,本文中以Charles为例

或者移动端(Android)安装:packet capture

packet capture 安装使用教程:

https://mp.weixin.qq.com/s/JxJWZk-uMMjLcLQFTQ7thA?

Charles安装配置教程(flddler与之大同小异,毕竟原理是一样的):

https://blog.csdn.net/Yunwubanjian/article/details/91869895

配置Xposed+JustTrustMe:

但上面的教程配置完成后,依然有部分app的请求抓不到,那就是使用了SSL Pinning双向证书验证的app,针对此类app,比较简单的方案是在安卓模拟器上配置Xposed+JustTrustMe以达成抓包目的,而模拟器最好使用安卓5.0以下的版本,否则配置Xposed十分麻烦.

ssl pinning原理:

https://www.jianshu.com/p/22b56d977825

 

mumu模拟器各版本下载:

https://blog.csdn.net/xingyunqi7/article/details/84783387

夜神模拟器下载(可在安装后添加不同安卓版本的模拟器,比较推荐):

https://www.yeshen.com/

Xposed_installer下载:

https://repo.xposed.info/module/de.robv.android.xposed.installer

JustTrustMe下载:

https://github.com/Fuzion24/JustTrustMe

安装安卓模拟器后,按照配置手机代理的方式配置好Charles代理,再安装配置Xposed+JustTrustMe框架,教程:

https://bbs.pediy.com/thread-226435.htm  (只看其中配置Xposed+JustTrustMe的部分即可)

https://www.jianshu.com/p/310d930dd62f

 

安装charles证书为模拟器系统证书:

有些情况下,仅仅将charles证书安装为用户证书是不能完全解决问题的,这时,就需要把它安装成系统证书

准备工作:安装配置adb工具,openssl工具

adb工具:下载安装即可:https://download.csdn.net/download/yunwubanjian/11249913

openssl安装配置:

下载:http://slproweb.com/products/Win32OpenSSL.html 第一个

安装后将安装目录\bin添加至环境变量,即可在任意cmd窗口调用

 

1.adb连接模拟器(以夜神模拟器为例)

进入安装目录:Nox\bin

执行命令查看端口:

D:\installPakge\yeshen\Nox\bin>nox_adb devices
List of devices attached
127.0.0.1:62025 device

连接:

D:\installPakge\yeshen\Nox\bin>adb connect 127.0.0.1:62025
already connected to 127.0.0.1:62025
D:\installPakge\yeshen\Nox\bin>adb devices
List of devices attached
127.0.0.1:62025 device

D:\installPakge\yeshen\Nox\bin>adb remount
remount succeeded

因为安卓模拟器是有root权限的,如果使用手机,则需要先root手机,或者,可以使用VirtualXposed+justtrustme,即一个虚拟的环境,具体操作方法:

在手机上下载安装VirtualXposed 和 JustTrustMe ,然后启用justtrustme,将要抓包的app在VirtualXposed 内克隆一份,即可开始抓包.

VirtualXposed下载:

https://vxposed.com/

 

 

2.使用openssl将证书名更换为安卓系统需要的格式

C:\Users\Administrator\Desktop>openssl x509 -subject_hash_old -in C:\Users\Administrator\Desktop\char.pem
a79a2868

3.将安全证书传入模拟器根证书目录:

D:\installPakge\yeshen\Nox\bin>adb push C:\Users\Administrator\Desktop\a79a2868.0 /system/etc/security/cacerts/
[100%] /system/etc/security/cacerts/a79a2868.0

此时模拟器端已经可以查看/system/etc/security/cacerts 目录,在此目录下可以找到证书

在受信任的凭据栏也可以查看到该证书:

普通用户证书:

一般来说,到这一步后,便可以关闭ssl证书验证并成功抓包了

另:

还可以通过逆向的方式修改app内的证书为Charles的证书,应该比较适合专业的测试人员或有安卓开发经验的人

仅做参考

https://www.freebuf.com/articles/terminal/161472.html

https://github.com/nabla-c0d3/ssl-kill-switch2

https://github.com/WooyunDota/DroidSSLUnpinning

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值