Android : Capturing HTTP Requests with non-rooted android device

I have an android application which uses a third party jar in it. Http request is sent from third party jar to server when application is running. I need to capture HTTP Request that is sent from third party jar. I am wondering if there is an easy way to implement with non-rooted device

To start up : I tried downloading "proxyDroid" but it need rooted phone I have also tried downloading "shark for root" with "shark reader" which also need rooted device I tried many other applications which could capture the complete request but all it need is rooted device

I need something what fiddler/wireshark can do for windows. A network packet analyzer which could be easily integrated with android application that could give request object with all header fields in it.

209099 次浏览

您可以安装 查尔斯-一个 HTTP 代理/HTTP 监视器/反向代理,使开发人员能够查看他们的机器和互联网之间的所有 HTTP 和 SSL/HTTPS 通信-在您的 PC 或 MAC。

配置步骤:

  • 让您的手机和 PC 或 MAC 在同一个局域网
  • 启动您安装的 Charles (默认代理端口是8888)
  • 设置您的手机的 wifi 配置: 设置的 ip 的委托到您的 PC 或 MAC 的 ip,端口的委托8888
  • 在你的手机上启动你的应用程序,并监控查尔斯的 http 请求。

You can use fiddler as webdebugger Http://www.telerik.com/fiddler/web-debugging

Fiddler 是来自 telerik 软件的调试工具,它可以帮助您拦截从您的计算机发起的每个请求。

我刚刚安装了 Drony,它不是共享软件,也不需要在 Android 3.x 或更高版本的手机上安装 root。

Https://play.google.com/store/apps/details?id=org.sandrob.drony

它可以拦截和记录请求。

您可以使用打嗝套件。请遵循以下程序。

配置打嗝代理侦听器

在 Burp 中,转到“ Proxy”选项卡,然后转到“ Options”选项卡。在“ Proxy Listener”部分,单击“ Add”按钮。

在“ Binding”选项卡的“ Bind to port:”框中,输入一个当前没有使用的端口号,例如“8082”。然后选择“所有接口”选项,并点击“确定”。

将设备配置为使用代理

In your Android device, go to the“Settings” menu.

If your device is not already connected to the wireless network you are using, then switch the "Wi-Fi" button on, and tap the “Wi-Fi” button to access the "Wi-Fi" menu.

在“ Wi-Fi 网络”表中,找到你的网络,点击它,打开连接菜单。

点击“连接”。如果您已经配置了密码,请输入并继续。

连接后,按住网络按钮打开上下文菜单,点击“修改网络配置”。

确保勾选了“显示高级选项”框。

通过点击按钮将“代理设置”更改为“手动”。

然后在“代理主机名”中输入运行 Burp 的计算机的 IP。输入前面“ Proxy Listener”部分中配置的端口号,在本例中为“8082”。点击“保存”。

测试配置

在 Burp 中,转到“ Proxy Intercept”选项卡,并确保拦截是“ on”(如果按钮说“ Intercept is off”,然后单击它来切换拦截状态)。

打开 Android 设备上的浏览器,进入一个 HTTP 网页(当你在 Android 设备上安装了 Burp 的 CA 证书时,你可以访问一个 HTTPS 网页)

请求应该在打嗝时被拦截。

SandroProxy 似乎比 Drony (由同一个开发人员开发)更好: 您可以 (但不必)方便地查看和分析电脑浏览器中的流量。

Should work in emulators as well.

有许多方法可以做到这一点,但其中之一是 小提琴手

提琴手形态

  1. 进入选项
  2. HTTPS选项卡中,启用 捕获 HTTPS 连接解密 HTTPS 通信
  3. 关系选项卡中,启用 允许远程计算机连接
  4. 重启小提琴手

Android 配置

  1. 连接到 一样网络
  2. 修改网络设置
  3. 添加代理连接到您的电脑的 IP 地址(或主机名)和默认提琴手的端口(8888/您可以在设置中更改)

现在您可以在 fiddler 中看到设备的完整日志

此外,您可以找到一个完整的指示 给你

在同一个 LAN 上设置一个 https://mitmproxy.org/作为代理

  • 开放源码
  • 内置巨蟒3
  • 可通过 pip 安装
  • 有一个 码头形象

It's 2020 now, for the latest solution, you can use Burp Suite to sniffing https traffic without rooting your Android device.

步骤:

  1. 安装打嗝套件

  2. 启用代理

  3. 在 Android 手机中导入认证

  4. Change you Wifi configuration to listening to proxy

  5. 利润!

我写了完整的教程和截图如何做到这一点: https://www.yodiw.com/monitor-android-network-traffic-with-burp/

If you're willing to use Genymotion (or another supported emulated device) you can use HTTP 工具包, which can analyze and intercept/rewrite HTTP calls. For HTTPS you will need a rooted device, to be able to trust the root CA certificate as a system certificate. Genymotion devices are rooted by default.

To install the app you want to investigate, Genymotion supports Open GApps (for Google Play support) and drag-and-drop for APK files.

HTTP Toolkit also works on real devices, but then root privileges are required (most Android phones are not rooted).

Https://httptoolkit.tech/docs/guides/android/#intercepting-traffic-from-your-own-android-app

enter image description here