Burpsuite 未能 capture/intercept 对 Android 的某些请求
Burpsuite failed to capture/intercept some request on Android
使用 Burpsuite 设置我的设备后。我能够捕获和拦截来自移动浏览器 (Chrome) 的请求,并且 仅来自我的应用程序的“某些请求”。我想知道为什么某些请求无法在 HTTP 历史记录中捕获?
**请注意,在 wifi 中设置代理后,我的设备显示有限连接。然而,我在移动设备上浏览网站时仍然可以访问互联网 Chrome,但某些应用程序(Youtube、Facebook)完全无法访问互联网。
这是我的一些请求无法被捕获的原因吗?
设置工作包括:
- IP:代理服务器
- cacert 安装(VPN 和 APPS)+(WIFI)
一些信息
- 我正在使用 8082 代理
- Android 10
更新 1
经过一些调试,我发现我的应用程序在触发一些请求(那些未能捕获的请求)时返回 Network Error
。虽然这可能是 CACERT / proxy set 的原因,但我仍然希望 http 请求出现在 burp 中?为什么没有出现?
如果应用程序使用证书固定,您将无法拦截它,要拦截它,您需要绕过证书固定,下载 Frida Server here, and make sure to select the type of your processor(Architecture) Here is the configuration guide also use this 代码以绕过证书固定。
另一种选择是使用异议绕过证书固定,
运行 此代码用于安装 Objection
pip3 install objection
运行 此代码绕过证书固定
objection --gadget "com.google.youtube" explore
[tab] for command suggestions
终于能够使用以下解决方案解决我的问题(归功于 the post here)!您需要 modify/create 以下文件:
AndroidManifest.xml
- 在
<application>
中添加以下行
<application
...
.....
android:networkSecurityConfig="@xml/network_security_config">
network_security_config.xml
- 创建或追加
<trust-anchors>
<network-security-config>
<base-config cleartextTrafficPermitted="true">>
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Additionally trust user added CAs -->
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
原因是,在 Android Nougat 中更改为受信任的证书颁发机构。 Read more here
好像other post里面也有类似的建议,我没看到。
注意事项:
即使 APIs 现在也可以在应用程序中运行,但应用程序中仍有一些服务无法按预期运行。在我的例子中是 Codepush。
[CodePush] An unknown error occurred.
[CodePush] Unexpected status line: HTTP/2 200 OK
不过。 . .
虽然上面的解决方案解决了我的问题,但并没有真正解决我的疑问。为什么首先另一个 API(这个工作 API 来自不同的服务)在没有实施解决方案的情况下工作?
如果有人能阐明一些问题,我们将不胜感激。谢谢!
使用 Burpsuite 设置我的设备后。我能够捕获和拦截来自移动浏览器 (Chrome) 的请求,并且 仅来自我的应用程序的“某些请求”。我想知道为什么某些请求无法在 HTTP 历史记录中捕获?
**请注意,在 wifi 中设置代理后,我的设备显示有限连接。然而,我在移动设备上浏览网站时仍然可以访问互联网 Chrome,但某些应用程序(Youtube、Facebook)完全无法访问互联网。
这是我的一些请求无法被捕获的原因吗?
设置工作包括:
- IP:代理服务器
- cacert 安装(VPN 和 APPS)+(WIFI)
一些信息
- 我正在使用 8082 代理
- Android 10
更新 1
经过一些调试,我发现我的应用程序在触发一些请求(那些未能捕获的请求)时返回 Network Error
。虽然这可能是 CACERT / proxy set 的原因,但我仍然希望 http 请求出现在 burp 中?为什么没有出现?
如果应用程序使用证书固定,您将无法拦截它,要拦截它,您需要绕过证书固定,下载 Frida Server here, and make sure to select the type of your processor(Architecture) Here is the configuration guide also use this 代码以绕过证书固定。
另一种选择是使用异议绕过证书固定,
运行 此代码用于安装 Objection
pip3 install objection
运行 此代码绕过证书固定
objection --gadget "com.google.youtube" explore
[tab] for command suggestions
终于能够使用以下解决方案解决我的问题(归功于 the post here)!您需要 modify/create 以下文件:
AndroidManifest.xml
- 在
<application>
中添加以下行
<application
...
.....
android:networkSecurityConfig="@xml/network_security_config">
network_security_config.xml
- 创建或追加
<trust-anchors>
<network-security-config>
<base-config cleartextTrafficPermitted="true">>
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Additionally trust user added CAs -->
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
原因是,在 Android Nougat 中更改为受信任的证书颁发机构。 Read more here
好像other post里面也有类似的建议,我没看到。
注意事项:
即使 APIs 现在也可以在应用程序中运行,但应用程序中仍有一些服务无法按预期运行。在我的例子中是 Codepush。
[CodePush] An unknown error occurred. [CodePush] Unexpected status line: HTTP/2 200 OK
不过。 . .
虽然上面的解决方案解决了我的问题,但并没有真正解决我的疑问。为什么首先另一个 API(这个工作 API 来自不同的服务)在没有实施解决方案的情况下工作?
如果有人能阐明一些问题,我们将不胜感激。谢谢!