首页 > 编程知识 正文

哪些app有年度总结,刀云抓包工具安卓5.1.1

时间:2023-05-05 09:07:13 阅读:23370 作者:1121

APP捕获问题总结和相关解决方案文章目录APP捕获问题总结和相关解决方案前言1选择捕获工具2常见问题解答解决方案2.1 APP工作正常,但没有捕获工具对应的请求记录2.1.2 UDP协议网络通信2.1.1 但是,在捕获工具中标记为相应请求记录失败的2.3 App无法正常工作,报告请求失败或网络错误的2.3.1单向认证(SSL pinning )2.3.2双向认证3总结

前言

本文主要介绍常规App包中遇到的各种问题和解决方案

1选择捕获工具在当前阶段,用于APP捕获工具的软件有以下两种:

Fiddler

下载到

使用教程

查尔斯

下载到

使用教程

2常见的常见问题有以下几类:

1.App正常运行,但没有与捕获工具对应的请求记录2.App正常运行,但与捕获工具对应的请求记录标记为失败3.App不正常运行。 报告请求失败或网络错误,逐个解决这些问题。

2.1 APP工作正常,但没有与捕获工具对应的请求记录,这可能有两个问题:

1、该App不使用传统的Http/https协议进行网络通信,而是使用UDP协议等基础协议进行网络通信,因此无法抓取数据包,目前常见的是QUIC和Spdy协议2、因为App正在无代理模式下运行,所以我们的捕获代理抓不到包。 2.1.1基于UDP协议的网络通信分析

我们常规的捕获工具原理是设置代理服务,手机中的http这样的基础库会主动识别系统代理的变化,然后去主动连接的代理服务器,后面的请求直接发送到代理服务器。 然而,UDP协议低于Http协议,并且忽略系统代理的设置。

解决方案

目前,遇到这种情况时,一般使用App自带的属性关闭相关基本协议的功能,强制使用Https协议进行网络通信。

参考: https://BBS.pediy.com/thread-267274.htm

2.1.2无代理模式分析

在App开发期间,开发人员将当前App配置为在无代理级别运行。 典型的Okhttp设置代码为以下:

在无代理模式下,任何请求都不通过代理。 此外,由于我们的捕获软件原理是通过设置代理来捕获数据请求,因此无法在捕获软件中查看相应的请求记录。

解决方案

在现阶段,很多情况下通过安装dr ony APP来解决这个问题

Drony下载地址

使用方法也很简单,方法如下。

1、打开Drony,向右滑动到SETTING选项卡,选择Networks,单击当前使用的wifi名称,进入Network details设置页面2,单击Proxy type,然后单击manual (手动) 3 输入要输入当前电脑LANIP的捕获软件的端口号,例如88885,单击Filter default value,选择Direct all6,然后单击Rules进入Rules详细信息页面进入add过滤器规则,操作选择Local proxy chain,保存应用程序,返回主页7,向左滑动到LOG选项卡,然后单击从底部关闭按钮启用Drony。 同时,确保Drony进程在后台正常运行而不杀死2.2 App,但捕获工具中相应的请求记录显示失败问题分析

安卓7.0或更高版本的手机抓住Https包时经常出现此问题。 这主要是因为手机安卓7.0以上版本的我们抓包软件安装在手机上的证书在系统级不可靠

解决方案

解决方案也相对简单,只需要将在手机上安装捕获软件的证书从用户级提升到系统级。 相关教程如下:

3359 blog.csdn.net/weixin _ 43900244/article/details/111909176

2.3 App运行不正常、请求失败和报告网络错误的问题,目前在主流的App分析中面临,主要发生在捕获Https请求的过程中,大多是Https证书验证失败引起的。 首先简要介绍Https证书的验证。

Https请求介绍

首先,让我们看看Https请求的创建过程。

看完这张图后,请整理逻辑:

单向认证:的核心是客户端验证服务端证书,其中客户端使用服务端公钥加密通信密钥,并将该通信密钥用于后续的数据交换。

双向认证:的核心是客户端验证服务端证书,而服务端也验证客户端证书。 客户端使用服务器端公钥加密通信密钥,而服务器端使用客户端公钥加密选定的对称加密方案,从而更加安全。

上面写的一个方向

认证和双向认证都会导致App不能正常运行,报请求失败或网络错误的问题,下面首先来说一下单向认证。

2.3.1 单向认证(SSL pinning)

上面介绍到,单向认证其本质就是客户端存在对服务端证书的校验逻辑,而关于单向认证的具体实现又分为以下两种情况:

证书锁定(Certificate Pinning)

需要在客户端代码内置仅接受指定域名的证书,而不接受操作系统或浏览器内置的CA根证书对应的任何证书,通过这种授权方式,保障了APP与服务端通信的唯一性和安全性,因此客户端与服务端(例如API网关)之间的通信是可以保证绝对安全。但是CA签发证书都存在有效期问题,缺点是证书续期后需要重新内置到APP中

公钥锁定(Public Key Pinning)

提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性。制作证书密钥时,公钥在证书的续期前后都可以保持不变(即密钥对不变),所以可以避免证书有效期问题,一般推荐这种做法。

解决单向认证主要有以下两种方法:

找到证书校验的代码逻辑,对相关校验代码逻辑进行覆盖或者修改(非root)

关于如何找到证书校验的代码逻辑,大概有两种方法:

使用logcat查看相关报错日志追踪反编译APP对APP进行关键字全局搜索如:checkServerTrusted、verify等。

对于相关校验代码逻辑的覆盖或修改,大概有两种方法:

反编译App修改其源代码(一般为smali代码),修改完毕重打包运行(但是可能会存在App打包证书校验问题导致App无法运行)使用Xposed对关键方法进行拦截修改

Xposed框架+JustTrustMe 绕过(root)

Xposed(Xposed安装)

Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed 就好比是 Google 模块化手机的主体,只是一个框架的存在,在添加其他功能模块(Modules)之前,发挥不了什么作用,但是没了它也不行。也正因为如此,Xposed 具有比较高的可定制化程度。Moto X 用户可定制手机的外观、壁纸、开机动画等,Xposed 则允许用户自选模块对手机功能进行自定义扩充。

JustTrustMe(JustTrustMe模块下载)

JustTrustMe 一个用来禁用、绕过 SSL 证书检查的基于 Xposed 模块。简单来说,JustTrustMe 是将 APK 中所有用于校验 SSL 证书的 API 都进行了 Hook,从而绕过证书检查。``

关于SSL pinning最后补充一下,目前大部分APP的校验都放在Java层,但是现在有少数校验放在Native层校验的,这种情况下需要去进行so文件的动态调试来查找出校验的方法,然后进行方法拦截修改或者直接修改ARM代码,因此遇到Native层做SSL pinning的解决起来会十分麻烦!有兴趣可以去了解下flutter的证书校验。

2.3.2 双向认证

关于双向认证主要卡住的地方是服务端校验客户端证书出现问题,解决方案有两个思路:

1、查找.p12证书文件以及相关的证书密码, 然后把该证书安装到抓包工具中即可。2、App运行时如果使用到双向认证则必定有打开打开证书的过程,打开证书会调用相关的方法,我们直接hook这些方法拿到证书并且保存到我们的本地文件中,然后安装到抓包工具中即可。

将证书文件装入抓包工具

1、找到client.p12文件

对于client.p12文件,我们直接解压Apk文件,然后在assets文件夹中直接拿就可以了

2、找证书密码

对于证书密码查找,一般是直接使用jadx等工具查看Apk源码,然后全局搜索client.p12、PKCS12、client.cer等等关于证书验证的关键字,然后查看这些关键字的调用情况,找到加载证书时用到的密码。

3、使用.p12证书文件和上一步找到的密码将证书安装到抓包工具中

证书Dump

主要是通过hook KeyStore来获取相关证书,hook可以使用xposed也可以使用frida

详情可以参考http://91fans.com.cn/post/socialsignone/

3 总结

最后总结一下,在抓包过程中会遇到很多奇奇怪怪的问题,上面罗列的可能只是比较典型的几种情况,现在大的趋势是基于UDP来自定义通信协议,以后抓包只会更难。

参考文章:
https://www.cnblogs.com/woaixuexi9999/p/9247705.html
https://www.cnblogs.com/hongyankuang/p/9961284.html
https://bbs.pediy.com/thread-267274.htm
https://blog.csdn.net/weixin_43900244/article/details/111909176
https://www.cr173.com/soft/170920.html
https://www.jianshu.com/p/ada10d2976f2
http://91fans.com.cn/post/socialsignone/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。