H5 APP传输数据包解密
0x01
测试一个APP时,如果传输数据包被加密,如何去寻找APP的加解密算法,对传输数据包进行解密?
如果这个APP是原生APP,那数据包加密使用的算法就应该是在java层或者so层。
如果这个APP是H5 APP,那数据包加密使用的算法就应该是在js代码中,如何寻找js代码一般有两种情况,一种情况是已将js已经打包在apk的资源文件目录中;另一种情况就是首次运行APP的时候,通过网络请求加载js文件(如果确认是H5 app,没抓到js文件的请求包,可以清空当前缓存再运行APP即可)。
本次演示的APP,为js代码运行时加载的H5 APP
0x02
抓取APP登陆请求数据包,发现传输数据已进行加密处理,如下:
第一次启动时,可看到APP请求的大量js等资源文件,如下:
如何找到加解密算法相关的代码位置,如果js代码没有混淆加密的话,可以尝试搜索encrypt,decrypt,aes,des,padding等加解密相关的关键字,或者数据包中出现的相关字符串,如此处的Authorization、Basic,还有请求的接口名称:app/appLogin等等,还有就是找到相关登陆功能处的代码,一步步调试跟踪到加解密算法。
0x03
google chrome浏览器
xposed
xposed插件:WebViewDebugHook( [https://github.com/feix760/WebViewDebugHook/blob/master/app/release/app-release.apk](https://github.com/feix760/WebViewDebugHook/blob/master/app/release/app-release.apk) )
确认WebViewDebugHook 安装激活后,手机usb连上PC,同时需要将“正在为此设备充电”改为“传输文件模式”
打开chrome浏览器,在浏览器地址栏输入: chrome://inspect/#devices,如果环境配置正常,可看到如下效果:
点击inspect即可附加上目标APP,如下:
根据相关特征,使用Ctrl+B在意思加密算法调用的地方打上断点。
打上断点后,执行登陆操作,如果我们打上断点的地方被登陆过程调用了,代码将在断点处暂停运行,
经过分析,此处就是APP数据包中调用的加密算法所在,查看代码,即可获取加密算法相关信息对数据包中的加密数据进行界面
使用分析出的加密算法相关参数,对数据包中加密数据进行解密。
- 感谢你赐予我前进的力量