首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

扩大攻击层面:React Native Android应用程序

React Native是一个移动应用程序框架,最常用于通过启用React和本机平台功能来为Android和iOS开发应用程序。如今,在你所有资产(有时使用相同的代码)的平台上使用React变得越来越流行,包括公司必须提供的任何移动应用程序。

在检测时,我们通常集中精力尽可能扩大攻击面。这通常意味着深入研究已经为移动平台编写的应用程序,以查找其他API端点或其他更多信息,例如API密钥形式的敏感凭据。

这篇博文的最终目标是能够从APK到React Native JavaScript,可以对其进行进一步分析以分析API路由和敏感凭证是否泄漏。

通常,在反转Android应用程序时,会使用dex2jar将其反编译,然后使用JD-GUI进行分析。在处理React Native应用程序时,如果该应用程序具有你要分析的任何本机代码,这将很有用,但是大多数情况下,应用程序的核心逻辑在于React JavaScript,无需使用即可获取dex2jar。

注意:dex2jar通过将Java字节码转换为Dalvik字节码来工作,因此,并不能始终保证干净有效的输出,因此请不要害怕使用该smali工具来探究Dalvik字节码。

从React Native APK获取JavaScript

对于此示例,我将从以下React Native应用程序中提取JavaScript:

com.react_native_examples(https://apkpure.com/react-native-examples/com.react_native_examples)

下载完上述APK后,请使用以下命令将其解压缩到新文件夹中:

浏览到新创建的ReactNative文件夹,然后找到该assets 文件夹。在此文件夹中,应包含index.android.bundle。该文件将以最小格式包含所有React JavaScript。

目录文件的力量

如果能够找到名为的文件index.android.bundle.map,则可以以最小化格式分析源代码。map文件包含允许你映射缩小的标识符的源映射。如果你要反转的React Native应用程序的assets文件夹中包含地图文件,则可以通过index.html在同一目录中创建一个文件,其中包含以下内容来利用此文件:

保存此文件,然后在Google Chrome中打开它。打开开发人员工具栏(对于OS X为Command + Option + J,对于Windows为Control + Shift + J),然后单击“源”。您应该看到一个整齐地映射的JavaScript文件,分为组成主捆绑包的文件夹和文件:

利用随附的地图文件分析Chrome DevTools中的index.android.bundle

搜索敏感的凭据和端点

与Firebase接口

以下Python脚本可用于与Firebase数据库连接。使用此脚本之前,请使用来安装pyrebase pip install pyrebase。

上面的脚本将对给定的Firebase数据库进行身份验证,然后打印出数据库的内容。仅当提供给此脚本的API密钥具有读取数据库的权限时,才可能这样做。要测试数据库上的其他操作,例如写入数据库,请参阅Pyrebase文档。

结论

end

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201226A0HD0800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com