抓包quick手

  • A+
所属分类:移动安全

抓包quick手

抓包quick手

工具

1、jadx
2、frida

网络请求框架分析请求协议

通过查看app源码,可以清楚看到okhttp3的包名,使用okhttp3就很香。

okhttp3分析

1、打印网络请求
通过他的sign或者sig3算法位置打印即可
frida 是真的香


var s = Java.use("j.a.*.*.s");


s.a.overload('okhttp3.Request', 'java.util.Map', 'java.util.Map').implementation = function (a1, a2, a3) {


console.log(a1)


return this.a(a1, a2, a3)


}

可以清楚的看到请求的url还有get的参数,不过发现没有打印出来协议相关的信息。
抓包quick手2、打印网络响应
打印一下第一步的调用栈


var exc = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new());


console.log(exc)

这里的就可以去打印响应数据了。
抓包quick手这就好了,app使用的协议是quic,这也就是为什么通过Charles抓不到包的原因了。

抓包quick手

okhttp3本身是支持quic的,但是app这里没有用到。
从这篇文章就能发现蛛丝马迹
https://cloud.tencent.com/developer/news/666059


客户端、网络库统一设计


对 QUIC 协议的支持需要客户端、服务端统一设计,kQUIC 也做了相应的工作。




客户端网络库项目代号是库 Aegon,目标是代替原 OKHTTP/AFNetworking 和进行 API 请求和短视频下载,提供了 QUIC 协议的支持、完善的上报信息,并基于对数据指标的分析和对协议的深入理解,对网络库中持续进行了多项协议相关的优化,包括预建连、SSL Session 复用优化、客户端 BBR、POST 请求 0RTT 优化等等。




一般 APP 使用的开源的网络库包括 OKHTTP 和 AFNetwork,都不支持跨平台,OKHTTP 是 Android 端,AFNetwork 是 iOS 端。**网络库在设计之初就把跨平台作为一个重要的目标,为**的双端提供统一的网络优化解决方案。

所以Aegon是客户端代号,全部的包名是aegon.chrome,剩下的就好办了。

解决问题

通过上面类似步骤的hook和打印调用栈,发现app本身有一个类似开关的地方。
"enable_quic": true
把这个开关利用hook改成"enable_quic": false,那就可以抓包了。
看看hook修改后的请求协议吧。

抓包quick手

看看Charles是否能抓到包。

抓包quick手

小结

frida Hook在app启动的时候,不要attach,建议使用xposed进行Hook


END

抓包quick手


本文始发于微信公众号(网络侦查研究院):抓包quick手

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: