hacktricks/mobile-pentesting/cordova-apps.md

5.4 KiB
Raw Blame History

Cordova Apps

{% hint style="success" %} 学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}

有关更多详细信息,请查看 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 documentation

要确定适当的 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应用程序的克隆简化了上述步骤。

{% hint style="success" %} 学习与实践AWS黑客技术HackTricks Training AWS Red Team Expert (ARTE)
学习与实践GCP黑客技术HackTricks Training GCP Red Team Expert (GRTE)

支持HackTricks
{% endhint %}