拦截Android应用程序的HTTP流量?

问题描述

我试图测试和拦截在 Rhodes 开源框架上开发的应用的流量,我使用burp设置了代理,当然我在设备上安装了burp证书,因此可以拦截设备上的其他应用程序,但是我无法在burp套件的question - its link中看到该应用程序的流量,而是该应用程序可以正常工作并连接到远程服务器,甚至没有在上出现与证书错误相关的任何错误打Log套件的事件日志,就像使用证书固定的应用会抱怨一样。在反转app时,我得出的结论是它使用https协议连接到服务器。此外,我已在 Genymotion 模拟器中安装了该应用程序,并且该应用程序的行为有所不同。当我在模拟器中安装证书并设置burp代理时,除此app之外,来自其他应用的所有流量通常都显示在代理中。所有应用流量都流向地址127.0.0.1,这对我来说很奇怪。例如,我在下面采取了一个被拦截的方法:

http://127.0.0.1:44895

POST /app/Settings/do_pathlogin HTTP/1.1
Host: 127.0.0.1:44895
Content-Length: 65
Accept: */*
Origin: http://127.0.0.1:44895
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Linux; Android 8.0.0; Samsung Galaxy S6 Build/OPR6.170623.017; wv) AppleWebKit/537.36 (KHTML,like Gecko) Version/4.0 Chrome/58.0.3029.125 Mobile Safari/537.36
Transition-Enabled: true
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://127.0.0.1:44895/app/Settings/index_callback
Accept-Encoding: gzip,deflate
Accept-Language: en-US
Connection: close

fromPage=login&operation_key=HOME_REP&username=user&password=pass

我不知道为什么app不会显示这种行为,在真实设备中却不会显示,即访问地址127.0.0.1的流量。 正如其他研究人员所建议的那样,尝试通过Wireshark嗅探app的网络流量并激活Wireshark的捕获流量,我原本希望嗅探甚至决定应用程序是否正在使用UDP协议,但并未出现任何流量从应用程序中!!

我需要一些帮助,该如何捕获此app的流量?

我想念什么?

我还需要什么其他步骤?

非常感谢您提供任何帮助。

注意:我对这个应用没有恶意。

解决方法

在查看时,您需要解决两个问题首先:该应用程序使用的是非代理感知的库,无法与服务器通信。 第二次当然,当应用程序受到Wireshark嗅探时,它会加密其数据,因此您需要从应用程序中提取证书,才能在 wireshark 中查看数据。但这是一项繁琐的工作,但可以实现。请做功课。希望这个答案会有所帮助。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...