某手v8.x版本抓包分析

快手升级到v8.x版本以后,会发现直接用Charles、Fiddler等抓包工具抓包的时候,抓不到包了。这是因为快手用了quic协议,下面就具体讲一下分析过程和解决方案。

一、分析过程

我曾经在分析sig参数的时候看到过有一个方法入参是okhttp3.Request,我们就直接从这里入手。

某手v8.x版本抓包分析

用Frida hook一下,打印request看一下。

var s = Java.use('j.a.a.b7.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和一些参数,并没有协议相关的信息。

某手v8.x版本抓包分析

打印堆栈看一下。

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

可以看到在j.a.v.f这个类中有一个拦截器。

某手v8.x版本抓包分析

直接hook这个intercept方法,打印一下response。

var f = Java.use('j.a.v.f');
f.intercept.overload("okhttp3.Interceptor$Chain").implementation = function (a1) {
    var ret = this.intercept(a1);
    console.log(ret);
    return ret;
}

可以看到,请求使用了quic协议。

某手v8.x版本抓包分析

quic协议目前通过直接抓包是无法抓到的,我们得想办法迫使app使用http协议,然后再抓包。

这里我卡了很久,后来在InfoQ网站上看到一篇关于快手kQUIC的文章(文章链接:https://www.infoq.cn/article/41HJkeZM7hEgIYlJRFK0),其中有这么一段话。

某手v8.x版本抓包分析

文章中写到,在app中使用了客户端网络库Aegon。

二、解决方案

我们从Aegon库入手,最终可以在一个native方法中找到一个开关:”enable_quic”: true

我们直接hook这个位置,强制把true改为false。

var aegon = Java.use('com.*.*.Aegon');
aegon.nativeUpdateConfig.overload("java.lang.String", "java.lang.String").implementation = function (a1, a2) {
    a1 = '{"enable_quic": false, "preconect_num_streams": 2, "quic_idle_timeout_sec": 180, "quic_use_bbr": true, "altsvc_broken_time_max": 600, "altsvc_broken_time_base": 60, "proxy_host_blacklist": []}'
    this.nativeUpdateConfig(a1, a2);
}

如果还是抓不到包,可以考虑在手机上使用Postern软件创建vpn转发到charles上,最终效果如下。

某手v8.x版本抓包分析

 

发布者:小趣,转载请注明出处:https://www.qztxs.com/archives/science/technology/9215

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月2日 上午11:17
下一篇 2022年6月7日 下午1:51

相关推荐

  • 关于MySQL,这篇都没人赞,太没天理了!

    这是一篇关于MySQL数据库,redo log,LSN,崩溃恢复,在线热备的长文,耐心读完,如果没有收获,可以捶我。   研发的童鞋每次对MySQL库表做重大操作之前,例如: (1)修改表结构; (2)批量修改或者删除数据; 都会向DBA申请进行数据库的备份。 画外音:又或者说,不备份直接操作啦?   那DBA童鞋是怎么进行MySQL备份的呢?  ...

    2022年5月11日
    1900
  • CVE-2019-0708 批量检测

    0x01 前言 项目地址:https://github.com/Pa55w0rd/CVE-2019-0708 CVE-2019-0708 Windows RDP 远程命令执行漏洞 Windows系列服务器于2019年5月15号,被爆出高危漏洞,该漏洞影响范围较广,windows2003、windows2008、windows2008 R2、windows x...

    2022年6月13日
    4300
  • 第三方服务挂了,如何保证服务不受影响?

    上周有个朋友问我说: 沈老师,我们有很多服务依赖第三方接口,他们的接口不稳定,从而影响我们的服务,有没有什么方法避免? 今天和大家聊一聊这个问题。   首先,可以将第三方接口,收口到一个服务内。   这样,可以避免每个调用方都依赖于第三方服务: (1)解除调用方与第三方接口的耦合; (2)当第三方的接口变动时,只有服务需要修改,而不是所有调用方均修改;   ...

    2022年5月14日
    3000
  • Linux后门入侵检测工具使用

    0x00 描述 当我们的应用系统被入侵后,系统是否已被黑客上传webshell甚至植入木马后门程序。如果依靠人工排查,一是工作量大,二是需要一定程度的技术知识和业务知识才能判断什么是正常什么是异常。工作量大决定排查工作不可能由个别具有技术知识和业务知识的人来完成工作而需要其他人员参与,而如果这些没有“一定程度的技术知识和业务知识”的人员参与基本必然后导致大量...

    2022年6月2日
    8600
  • 用友致远A6 OA存在sql注入并拿shell

    用友致远A6协同系统 /yyoa/common/js/menu/test.jsp 文件 S1 参数SQL注入漏洞 注入点为S1变量,通过探测,发现是mysql数据库 http://xx/yyoa/common/js/menu/test.jsp?doType=101&S1= 于是构造注入语句查询数据库名: http://xx/yyoa/common/j...

    技术 2022年6月2日
    8000

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信