hacktricks/mobile-pentesting/cordova-apps.md
2023-08-03 19:12:22 +00:00

7.5 KiB
Raw Blame History

Cordova 应用

☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

从文章 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.jscordova.jscordova-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

Cordova插件

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

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应用程序的完整过程的工具。

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥