hacktricks/src/mobile-pentesting/cordova-apps.md

54 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cordova Apps
{{#include ../banners/hacktricks-training.md}}
**有关更多详细信息,请查看 [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](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 [文档](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) 提供了这些安装的全面指南。
考虑一个名为 `Bank.apk` 的示例应用程序,其包名为 `com.android.bank`。要访问源代码,请解压 `bank.apk` 并导航到 `bank/assets/www` 文件夹。该文件夹包含应用程序的完整源代码,包括 HTML 和 JS 文件。应用程序的配置可以在 `bank/res/xml/config.xml` 中找到。
要克隆该应用程序,请按照以下步骤操作:
```bash
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 API 的详细信息,请参阅 Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)。
要确定适当的 Cordova Android 平台版本,请检查原始应用程序的 `cordova.js` 文件中的 `PLATFORM_VERSION_BUILD_LABEL`
设置平台后,安装所需的插件。原始应用程序的 `bank/assets/www/cordova_plugins.js` 文件列出了所有插件及其版本。逐个安装每个插件,如下所示:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
如果插件在 npm 上不可用,可以从 GitHub 获取:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
确保在编译之前满足所有先决条件:
```bash
cd bank-new
cordova requirements
```
要构建APK请使用以下命令
```bash
cd bank-new
cordova build android — packageType=apk
```
此命令生成一个启用调试选项的APK便于通过Google Chrome进行调试。在安装之前签署APK是至关重要的特别是当应用程序包含代码篡改检测机制时。
### 自动化工具
对于那些寻求自动化克隆过程的人,**[MobSecco](https://github.com/Anof-cyber/MobSecco)** 是一个推荐的工具。它简化了Android应用程序的克隆简化了上述步骤。
{{#include ../banners/hacktricks-training.md}}