Android App Retrofit Web Service 请求拦截和修改使用 Burp Suit 攻击修复

Posted

技术标签:

【中文标题】Android App Retrofit Web Service 请求拦截和修改使用 Burp Suit 攻击修复【英文标题】:Android App Retrofit Web Service Request Intercept and Modify Using Burp Suit Attack Fix 【发布时间】:2022-01-03 18:08:43 【问题描述】:

在我的 android 应用程序中,我们使用改造网络服务与服务器通信。一些黑客拦截请求并使用一些工具 Burp Suit 对其进行修改。

请帮我告诉我如何停止拦截攻击。

【问题讨论】:

你可以试试这个***.com/questions/7631025/… 有太多方法可以保护您的 Web 服务通信,例如加密/解密或在标头中添加身份验证密钥。 如果您想阻止人们对您的应用进行逆向工程,请不要这样做。最好的办法就是破坏用户的信任。 【参考方案1】:

Burp Suit 的作用 - 它基本上执行中间人攻击。它会生成一个 HTTPS 证书并伪装成一个浏览器。

问题是,如果您的服务器和客户端受到 MITM 攻击的保护 - 这些工具将无法工作。至少在移动应用程序中 - 浏览器会显示安全错误,但仍会传递数据。

您可以使用的解决方案是将您的特定 SSL 证书包含到应用程序中,并使应用程序将其视为唯一受信任的证书。它将或多或少安全-取决于实现。它也是免费的,因为您可以附加您自己创建的自签名证书,因为您控制了验证。自然,后端也应该使用相同的 SSL 证书。虽然使用这种技术 Burp Suit 生成的证书将不起作用,因为该应用只知道一个受信任的证书。

该技术本身称为SSL pinningcertificate pinning,您可以在网上找到大量关于如何在客户端和服务器上实现它的信息。

不过,我会给你几个链接:

Here 是一篇很好的文章,介绍了如何使用改造(okhttp)来做到这一点。

Here是OkHttp的官方文档CertificatePinner

Here 是改造 SSL pinning 的小型实现。

Here 是另一篇文章。

这还不够,但问题很复杂,一个 *** 答案是不够的。但我认为这是进行实际实施的良好开端。

另外作为一个小建议 - 使用加密来存储您的 SSL 证书密钥而不是纯字符串存储 - 它仍然不能防止内存欺骗,但黑客使用它会更加困难。

【讨论】:

SSL 已经在我们连接到应用程序的网站中实施。当我开始测试时,我会绕过 SSL pinning 并执行攻击。我如何避免绕过 SSL pinning??? 这意味着在客户端或服务器端都没有正确设置 SSL pinning。我也在几个应用程序中实现了它 - 一切都按预期工作。您也可以使用this - 不过我不确定它是否适用于您的情况,但它是一个更简单的解决方案。它需要客户端和服务器的工作。

以上是关于Android App Retrofit Web Service 请求拦截和修改使用 Burp Suit 攻击修复的主要内容,如果未能解决你的问题,请参考以下文章

Android入门第65天-mvvm模式下的retrofit2+okhttp3+rxjava

Android Retrofit详解

Android开发,使用Retrofit发送HTTP请求

开发一个类似今日头条的app需要哪些关键的android技术

如何使用 Retrofit 将图像文件从 Android 上传到 ASP.NET(Web Services-ASMX) 上传文件夹

[Android] Retrofit初步