我能够在 React Native Android 应用程序的内存转储中从 input 和 axios 请求中看到用户的密码

I am able to see user's password from input and axios requests inside a memory dump of a React Native Android application

提问人:Onyx 提问时间:10/10/2023 更新时间:10/10/2023 访问量:35

问:

我正在使用 fridump 获取我的 React Native Android 应用程序的内存转储,并且我能够在内存转储中看到我的密码。

首先,我可以进入登录屏幕,只需在密码输入字段中输入我的密码而不提交,如果我在此时创建内存转储,我已经可以在内存中看到我的密码。

其次,如果我提交了我的电子邮件和密码,我可以看到包含我的电子邮件和密码的 Axios 发布请求有效负载。

密码不存储在设备的存储中,因此必须存储在设备的RAM中。我的问题是,是否有可能以某种方式阻止信息出现在内存转储中?

javascript android react-native 安全性 axios

评论

1赞 Lk77 10/10/2023
您需要 adb 访问权限才能做到这一点,所以我认为这不是问题,我可以对 chrome 做同样的事情并检索密码,并且设备需要植根才能运行 frida-server。您唯一可以做的有用的事情是窃取 API 密钥,例如可能在内存中的密钥
1赞 Pointy 10/10/2023
如果客户端中的代码在内存中没有密码,至少在为(安全)Web 事务准备有效负载时,事情怎么可能起作用?
0赞 Onyx 10/10/2023
在我完成登录步骤、向后端发出 POST 请求并登录后,我是否可以以某种方式从内存中清除密码?那时,我将拥有 JWT 令牌,因此我不再需要密码,因此将其从内存中删除是安全的。
0赞 Marek Puchalski 10/11/2023
问得好。在 java 世界中,您可以通过将密码存储在 char 数组(而不是字符串)中来实现这一点,因为字符串是不可变的,但数组不是。当不再需要密码时,可以使用某些值覆盖 char 数组,从而使内存转储不显示机密。但老实说,我不会走那条路。内存转储总是会显示一些秘密,无论是令牌、cookie 还是其他什么。你用密码换取一些东西。你也想保护这个东西吗?

答: 暂无答案