网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

无线安全团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 网络安全 > 无线安全 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

根据APK文件来获取React Native JavaScript,分析API及敏感信息

文章来源:重庆网络安全 发布时间:2020-03-01 15:18:58 围观次数:
分享到:

摘要:React Native是一个移动应用程序框架。由于该框架允许开发人员使用React和本机平台功能,因此当前基于该框架开发了许多Android和iOS应用程序。

  React Native是一个移动应用程序框架。由于该框架允许开发人员使用React和本机平台功能,因此当前基于该框架开发了许多Android和iOS应用程序。

  在进行常规侦察时,我们通常着重于尽可能扩大攻击面。因此,我们需要研究为移动平台开发的各种应用程序,以便找到更多的API或其他有趣的东西,例如API密钥之类的敏感信息。


  在本文中,我们将介绍如何基于APK文件获取React Native JavaScript,以及如何基于此信息分析API和其他敏感信息。


  一般来说,当对Android应用程序进行反向分析时,我们需要使用dex2jar来反编译APK文件,然后使用JD-GUI进行下一个分析。然后,在处理React Native应用程序时,如果应用程序具有本机代码,将非常方便,但是在大多数情况下,应用程序的核心逻辑是使用React JavaScript来实现的,这部分代码可以在没有dex2jar Case的情况下使用。


  请注意:dex2jar通过将Java字节码转换为Dalvik字节码来工作。因此,我们不能保证所有输出都是有效的。 这时,我们需要使用Smali工具来分析Dalvik字节码。


  从React Native APK获取JavaSript


  在此示例中,我们将从以下React Native应用程序中提取JavaScript代码:


  com.react_native_examples

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


  unzip React\ Native\ Examples_v1.0_apkpure.com.apk -d ReactNative

  切换到新创建的“ ReactNative”目录并找到“ assets”目录。在此文件夹中,找到一个名为“ index.android.bundle”的文件,该文件将包含所有React JavaScript代码。


  映射文件


  如果可以找到名为“ index.android.bundle.map”的文件,则可以直接分析源代码。映射文件包含源代码映射关系,可以帮助我们映射代码中的标识符。如果要反向分析的React Native应用程序的assets文件夹中有此映射文件,则可以在此目录中创建一个名为“ index.html”的文件以使用此映射文件“ index.html”。文件如下:


  <script src =“ index.android.bundle”> </ script>

  保存文件并在Google Chrome中打开。接下来,打开开发人员工具栏,然后单击“源”选项卡,您可以查看映射的JavaScript文件:

blob.png

敏感凭证和节点


  React Native应用程序的一种模式是它需要使用第三方数据库,例如Firebase。在我们以前的研究中,我们发现许多应用程序未正确使用Firebase身份验证模型,其中涉及对API密钥的错误使用。


  例如,Donald Daters应用程序受到此攻击媒介的威胁。


  为了从index.android.bundle中提取Firebase API密钥,我们需要提取以下字符串:

FIREBASE_API_KEY

FIREBASE_AUTH_DOMAIN

FIREBASE_DB_URL

FIREBASE_BUCKET

apiKey

如下:

❯ grep -rnis 'apiKey' index.android.bundle... omitted for brevity ...

initializeApp({apiKey:"AIzaSyDokhX9fzFlJMfXjwbiiG-2fGDhi4kLPFI",
authDomain:"react-native-examples-bcc4d.firebaseapp.com",
databaseURL:"https://react-native-examples-bcc4d.firebaseio.com",
projectId:"react-native-examples-bcc4d",
storageBucket:"",
messagingSenderId:"928497342409"});... omitted for brevity ...

除了查找Firebase凭证之外,我们还可以使用index.android.bundle来分析API节点。在React Native应用程序中,我们需要进行反向分析,我们可以通过浏览Chrome中提取的JavaScript文件来找到大量的API节点:

blob.png

Firebase界面分析


  以下Python脚本可用于与Firebase数据库进行交互。在使用此脚本之前,请使用“ pip install pyrebase”命令安装pyrebase:

import pyrebase config = {  "apiKey": "FIREBASE_API_KEY",  "authDomain": "FIREBASE_AUTH_DOMAIN_ID.firebaseapp.com",  "databaseURL": "https://FIREBASE_AUTH_DOMAIN_ID.firebaseio.com",  "storageBucket": "FIREBASE_AUTH_DOMAIN_ID.appspot.com", } firebase = pyrebase.initialize_app(config) db = firebase.database() print(db.get())


 上面的脚本将对给定的Firebase数据库进行身份验证,然后在数据库中输出日期。当然,只有在我们为脚本提供目标Firebase数据库的API密钥的情况下,该脚本才有权读取数据库的内容。


  总结一下


  我们演示了如何分析React Native Android应用程序及其相应的JavaScript代码。通常,通过分析应用程序APK文件中的JavaScript,我们可以提取目标应用程序中的敏感凭证数据和API节点。


本文由 重庆网络安全 整理发布,转载请保留出处,内容部分来自于互联网,如有侵权请联系我们删除。

相关热词搜索:APK文件 React Native JavaScript 分析API敏感信息 重庆网络安全

上一篇:借助适当的DevSecOps和GitHub事件API扫描,降低GitHub帐户泄露敏感信息的风险
下一篇:重新对iOS应用程序签名,生成IPA文件,部署到测试设备

热门资讯

鼠标向下滚动