Android:使用非root用户的android设备捕获HTTP请求


88

我有一个使用第三方jar的android应用程序。当应用程序运行时,Http请求从第三方jar发送到服务器。我需要捕获从第三方jar发送的HTTP请求。我想知道是否有一种简单的方法可以用非根设备实现

开始:我尝试下载“ proxyDroid”,但它需要带root权限的电话,我也尝试过使用“ shark reader”下载“ shark for root”,这也需要rooted的设备,我尝试了许多其他应用程序,它们可以捕获完整的请求,但它所需要的全部植根设备

我需要Fiddler / wireshark可以为Windows做些什么。一个网络数据包分析器,可以很容易地与android应用程序集成,从而可以为请求对象提供所有标头字段。


这是您的“ Android应用程序”吗?
CommonsWare

是的,我的Android应用程序
Venkatesh 2013年

您好@Venkatesh,您是否曾经成功实现过使用非root用户的android拦截HTTP请求的功能?

@lalalalalala不。我无法使用非根目录设备来实现此目的。
Venkatesh 2014年

Answers:


77

您可以在PC或MAC上安装Charles-一个HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。

配置步骤:

  • 让您的电话和PC或MAC位于同一局域网中
  • 启动已安装的Charles(默认代理端口为8888)
  • 设置手机的wifi配置:将代表IP设置为PC或MAC的IP,将代表端口设置为8888
  • 将您的应用放到手机上。并在Charles上监视http请求。

4
本教程效果很好:jaanus.com/blog/2012/02/12/…–
Lionel

17
不幸的是,它是一个共享软件。
瑕疵的

1
您可能希望尝试使用burp套件来完成相同的工作。它非常强大且免费:portswigger.net/burp
gerodim

有什么工具可以处理网络套接字流量吗?我的意思是在android本身。(我知道PC的Wireshark / Fiddler)
Amol M Kulkarni,

什么是Android系统
mohsen

17

我刚刚安装了Drony,不是共享软件,并且不需要在装有Android 3.x或更高版本的手机上使用root

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

它拦截请求并显示在日志中


这是我在寻找的东西,但是我想要这个应用的确切源代码,您能张贴一个android源代码的链接吗?
Smit.Satodia'3

2
@ Smit.Satodia我不知道他们是否共享/发布源代码,如果有人发现可以随意发布链接作为评论
Mauricio Gracia Gutierrez

2
可以在以下位置找到源代码:github.com/SuppSandroB/sandrop最初由Google代码托管在此处:code.google.com/archive/p/sandrop
GabLeRoux

1
@JanWytze如果您与开发人员联系,也许他们可以帮助您。
Mauricio Gracia Gutierrez

17

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

提琴手配置

  1. 转到选项
  2. 在“ HTTPS”选项卡中,启用“捕获HTTPS连接解密HTTPS流量”
  3. 在“连接”选项卡中,启用“允许远程计算机连接”
  4. 重新启动提琴手

Android配置

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

现在,您可以在Fiddler中查看设备中的完整日志

您也可以在这里找到完整的说明


2
Fiddler Beta在macOS上可用(依赖于mono)。如果您没有PC,这是个好消息。
MacKentoch

谢谢,但我的意思是这个答案中的所有计算机。PC /笔记本电脑/等... :) @MacKentoch
Arash Hatami

6

您可以将提琴手用作web调试器 http://www.telerik.com/fiddler/web-debugging

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


4
尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能无效
zohar

5

现在是2020年,对于最新解决方案,您可以使用Burp Suite嗅探https流量,而无需植根Android设备。

脚步:

  1. 安装Burp Suite

  2. 启用代理

  3. 在您的Android手机中导入认证

  4. 将您的Wifi配置更改为侦听代理

  5. 利润!

我在此处编写了完整的教程和屏幕截图,以了解如何执行此操作:https : //www.yodiw.com/monitor-android-network-traffic-with-burp/


将数据从站点复制到此处即可。由于您的网站可能会崩溃。同样出于同样的原因,SO也鼓励引用而不是链接。除了很棒的教程。
Mark

虽然公平地说,可能最好只是改善stackoverflow.com/a/39684919/5506988,而不是编写另一个“答案”。
Mark

4

您可以使用打p套件。请按照以下步骤操作。

配置打p代理侦听器

在Burp中,转到“代理”选项卡,然后转到“选项”选项卡。在“代理侦听器”部分,单击“添加”按钮。

在“绑定”选项卡的“绑定到端口:”框中,输入当前未使用的端口号,例如“ 8082”。然后选择“所有接口”选项,然后单击“确定”。

配置设备以使用代理

在您的Android设备上,转到“设置”菜单。

如果您的设备尚未连接到正在使用的无线网络,请打开“ Wi-Fi”按钮,然后点击“ Wi-Fi”按钮以访问“ Wi-Fi”菜单。

在“ Wi-Fi网络”表中,找到您的网络,然后点按它以显示连接菜单。

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

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

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

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

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

测试配置

在Burp中,转到“代理侦听”选项卡,并确保侦听为“打开”(如果按钮显示“侦听已关闭”,则单击它以切换侦听状态)。

打开Android设备上的浏览器,然后转到HTTP网页(在Android设备中安装Burp的CA证书后,您可以访问HTTPS网页。)

该请求应在Burp中被拦截。


2

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

也应该在模拟器中工作。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.