hacktricks/mobile-pentesting/cordova-apps.md

5.4 KiB
Raw Blame History

Cordova 应用

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

有关更多详细信息,请查看 https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58。这是一个摘要:

Apache Cordova 以使用 JavaScript、HTML 和 CSS 开发 混合应用 而闻名。它允许创建 Android 和 iOS 应用程序;然而,它缺乏默认的机制来保护应用程序的源代码。与 React Native 相反Cordova 默认不编译源代码这可能导致代码篡改漏洞。Cordova 使用 WebView 来渲染应用程序,即使编译为 APK 或 IPA 文件,仍会暴露 HTML 和 JavaScript 代码。相比之下React Native 使用 JavaScript VM 来执行 JavaScript 代码,提供更好的源代码保护。

克隆 Cordova 应用

在克隆 Cordova 应用之前,请确保已安装 NodeJS 以及其他先决条件,如 Android SDK、Java JDK 和 Gradle。官方 Cordova 文档 提供了这些安装的详细指南。

假设有一个名为 Bank.apk 的示例应用,包名为 com.android.bank。要访问源代码,请解压 bank.apk 并导航至 bank/assets/www 文件夹。该文件夹包含应用程序的完整源代码,包括 HTML 和 JS 文件。应用程序的配置可以在 bank/res/xml/config.xml 中找到。

要克隆应用程序,请按照以下步骤操作:

npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new

bank/assets/www目录中的内容复制到bank-new/www目录,但不包括cordova_plugins.jscordova.jscordova-js-src/以及plugins/目录。

在创建新的Cordova项目时需要指定平台Android或iOS。要克隆Android应用程序请添加Android平台。请注意Cordova的平台版本和Android API级别是不同的。有关平台版本和支持的Android API的详细信息请参考Cordova的文档

要确定适当的Cordova Android平台版本请检查原始应用程序的cordova.js文件中的PLATFORM_VERSION_BUILD_LABEL

设置平台后,安装所需的插件。原始应用程序的bank/assets/www/cordova_plugins.js文件列出了所有插件及其版本。请按照以下示例逐个安装每个插件:

cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1

如果一个插件在 npm 上不可用,可以从 GitHub 获取:

cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git

确保在编译之前满足所有先决条件:

cd bank-new
cordova requirements

要构建APK请使用以下命令

cd bank-new
cordova build android — packageType=apk

这个命令生成一个启用调试选项的APK通过Google Chrome方便调试。在安装之前签署APK是至关重要的特别是如果应用程序包含代码篡改检测机制。

自动化工具

对于那些希望自动化克隆过程的人,MobSecco 是一个推荐的工具。它简化了Android应用程序的克隆过程简化了上述步骤。

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

支持HackTricks的其他方式