首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每当特定应用程序试图使用internet连接时,mitmproxy客户端和服务器就断开连接

每当特定应用程序试图使用internet连接时,mitmproxy客户端和服务器就断开连接
EN

Stack Overflow用户
提问于 2021-12-07 16:04:00
回答 1查看 2K关注 0票数 2

我在我的安卓手机上有一个应用程序,我试图调试,但每当我允许PcapDroid发送解密请求和响应到我的电脑,它将不允许任何互联网访问在应用程序。我在mitmproxy中没有收到错误信息。

唯一的产出是:

代码语言:javascript
复制
info: 192.168.xx.xxx:33396: client disconnect
info: 192.168.xx.xxx:43544: server disconnect xxx.xxx.xxx.xxx:443

偶尔会在日志中看到这一点:

代码语言:javascript
复制
warn: 192.168.xx.xxx:43544: Client TLS handshake failed. The client may not trust the proxy's certificate for api.example.com (OpenSSL Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')]))

这是唯一一个报告TLS握手失败的请求。我知道这个请求并不重要,所以我想知道为什么其他更重要的请求都没有报告任何内容。

其他应用程序发送的数据也很好。

为什么这个应用程序不允许任何互联网连接?我用apk修补了它,就像我对所有其他应用程序所做的那样,以便于检查。

EN

回答 1

Stack Overflow用户

发布于 2022-01-25 22:05:20

许多应用程序都执行证书钉扎:它们附带了自己信任的证书的内部列表,并且不信任任何其他证书(包括来自电话证书存储区的证书)。在这种情况下,通常不可能使用MITM与mitmproxy通信,因为应用程序将拒绝MITM证书。

你有几个选择:

  • 使用--ignore-hosts--allow-hosts可以选择性地忽略应用程序试图连接到的主机。在这种情况下,mitmproxy将直接通过连接而不尝试MITM,并且连接将成功。如果你对这些请求不感兴趣,只想让应用程序正常工作,你就可以这样做。
  • 解压应用程序,找到它的内部证书存储,并修改它以添加您的MITM CA证书。这将因应用程序而异;有些应用程序有简单的bks文件,您只需编辑这些文件,有些则可能将存储打包在本机库或Java类中。
  • 使用像Frida这样的动态检测工具来拦截HTTPS通信或绕过证书钉扎。例如,我编写了这个剧本来记录使用OkHttp3发出的HTTP(S)请求,例如,在许多Android应用程序中,可以使用这个剧本绕过Java证书绑定。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70263334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档