hacktricks/mobile-pentesting/cordova-apps.md

6.6 KiB
Raw Blame History

Cordova 应用程序

从零开始学习 AWS 黑客攻击成为英雄,通过 htARTE (HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

信息取自帖子 https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58

基本信息

Apache Cordova 是一个流行的框架,允许您使用 JavaScript、HTML 和 CSS 创建 混合应用程序Android 和 iOS

Cordova 的一个主要问题是它 没有默认的方法来保护 应用程序的 源代码,不像 react-native 那样。Cordova 应用程序没有默认的方法来编译它,这使得代码篡改变得 容易。Cordova 应用程序使用 WebView 来使用 HTML 和 JS 渲染应用程序,即使在编译成 APK 或 IPA 之后也会泄露源代码,而 react native 使用 JavaScript VM 来运行 JavaScript 代码。

克隆 Cordova 应用程序

要创建 Cordova 应用程序,我们需要安装 NodeJS。除了 NodeJS我们还需要安装其他一些东西来完成构建过程如 Android SDK、Java JDK 和 Gradle。您可以按照官方文档的要求列表进行操作。

以这个例子为例,我们可以假设原始应用程序的名称是 Bank.apk,包名是 com.android.bank

解压 bank.apk 并打开 bank/assets/www 文件夹。我们可以查看 Cordova 应用程序的完整源代码。所有 HTML 和 JS 代码都可以用来创建应用程序的克隆。我们还可以在 bank/res/xml/config.xml 中找到应用程序的配置文件。

现在我们可以创建一个新的 Cordova 应用程序项目:

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

现在我们需要将所有文件和文件夹从 bank/assets/www 复制到 bank-new/www

当我们复制源代码时,我们需要排除一些文件和文件夹,如 cordova_plugins.js, cordova.js, cordova-js-src/, plugins/。我们可以复制所有文件和文件夹,不包括上述提到的。

当我们创建一个新的Cordova项目时我们需要指明应用是为Android还是iOS。由于我们正在克隆Android应用我们需要为其添加一个Android平台。在Cordova中我们有平台版本每个版本都有不同的特性和对Android API或Android版本的支持。

Android API和Cordova Android平台版本都是不同的。您可以查看平台版本列表及其对Android API的支持。

要添加Cordova Android平台我们需要找出应用最初使用的是哪个版本。如果您使用不同的版本您可能会遇到问题因为我们正在使用相同的源代码来克隆应用。您可以打开 cordova.js 文件并搜索 PLATFORM_VERSION_BUILD_LABEL 来找到应用使用的版本。

\

现在我们已经添加了Android平台支持我们可以添加应用所需的所有插件。在原始应用 bank/assets/www/cordova_plugins.js 中,我们可以找到应用使用的所有插件的列表。我们需要逐一安装这些插件。在 cordova_plugins.js 文件中搜索 module.exports.metadata。我们也可以看到所有插件及其版本。

Cordova Plugins

Cordva 插件

我们需要使用以下命令逐一安装所有插件

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

{% hint style="warning" %} 如果在npm上找不到插件请在Github上搜索

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

{% endhint %}

要编译应用程序,我们需要确保已经安装了所有必需的条件。

cd bank-new
cordova requirements

一旦我们准备好所有设置我们就可以构建apk。

cd bank-new
cordova build android — packageType=apk

上述构建命令将创建一个启用了调试方法的apk这允许我们使用Google Chrome对应用程序进行调试。在安装apk之前请确保对apk进行签名。如果应用程序具有代码篡改检测功能除非没有设置特定配置否则将被绕过。

自动化工具

MobSecco一个自动化克隆Android应用程序完整过程的工具。

从零开始学习AWS黑客攻击直到成为专家通过 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式