mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
96 lines
6.6 KiB
Markdown
96 lines
6.6 KiB
Markdown
# Cordova 应用程序
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习 AWS 黑客攻击成为英雄,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||
|
||
支持 HackTricks 的其他方式:
|
||
|
||
* 如果您想在 **HackTricks 中看到您的公司广告** 或 **下载 HackTricks 的 PDF 版本**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
|
||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||
|
||
</details>
|
||
|
||
信息取自帖子 [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)。
|
||
|
||
Cordova 的一个主要问题是它 **没有默认的方法来保护** 应用程序的 **源代码**,不像 react-native 那样。Cordova 应用程序没有默认的方法来编译它,这使得代码篡改变得 **容易**。Cordova 应用程序使用 WebView 来使用 HTML 和 JS 渲染应用程序,即使在编译成 APK 或 IPA 之后也会泄露源代码,而 react native 使用 JavaScript VM 来运行 JavaScript 代码。
|
||
|
||
### 克隆 Cordova 应用程序 <a href="#8f50" id="8f50"></a>
|
||
|
||
要创建 Cordova 应用程序,我们需要安装 NodeJS。除了 NodeJS,我们还需要安装其他一些东西来完成构建过程,如 Android SDK、Java JDK 和 Gradle。您可以按照[官方文档](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` 文件夹。我们可以查看 **Cordova 应用程序的完整源代码**。所有 HTML 和 JS 代码都可以用来创建应用程序的克隆。我们还可以在 `bank/res/xml/config.xml` 中找到应用程序的配置文件。
|
||
|
||
现在我们可以创建一个新的 Cordova 应用程序项目:
|
||
```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版本的支持。
|
||
|
||
Android API和Cordova Android平台版本都是不同的。您可以[查看](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)平台版本列表及其对Android API的支持。
|
||
|
||
要添加Cordova Android平台,我们需要找出应用最初使用的是哪个版本。如果您使用不同的版本,您可能会遇到问题,因为我们正在使用相同的源代码来克隆应用。您可以打开 `cordova.js` 文件并搜索 `PLATFORM_VERSION_BUILD_LABEL` 来找到应用使用的版本。
|
||
|
||
\
|
||
|
||
现在我们已经添加了Android平台支持,我们可以添加应用所需的所有插件。在原始应用 `bank/assets/www/cordova_plugins.js` 中,我们可以找到应用使用的所有插件的列表。我们需要逐一安装这些插件。在 `cordova_plugins.js` 文件中搜索 `module.exports.metadata`。我们也可以看到所有插件及其版本。
|
||
|
||
<figure><img src="https://miro.medium.com/v2/resize:fit:1124/1*Hap3DmxS6-1apNj5RfpC3g.png" alt="Cordova Plugins" height="570" width="562"><figcaption><p>Cordva 插件</p></figcaption></figure>
|
||
|
||
我们需要使用以下命令逐一安装所有插件
|
||
```bash
|
||
cd bank-new
|
||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||
```
|
||
{% hint style="warning" %}
|
||
如果在npm上找不到插件,请在Github上搜索:
|
||
```bash
|
||
cd bank-new
|
||
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
||
```
|
||
{% endhint %}
|
||
|
||
要编译应用程序,我们需要确保已经安装了所有必需的条件。
|
||
```bash
|
||
cd bank-new
|
||
cordova requirements
|
||
```
|
||
一旦我们准备好所有设置,我们就可以构建apk。
|
||
```bash
|
||
cd bank-new
|
||
cordova build android — packageType=apk
|
||
```
|
||
上述构建命令将创建一个启用了调试方法的apk,这允许我们使用Google Chrome对应用程序进行调试。在安装apk之前,请确保对apk进行签名。如果应用程序具有代码篡改检测功能,除非没有设置特定配置,否则将被绕过。
|
||
|
||
### 自动化工具
|
||
|
||
[**MobSecco**](https://github.com/Anof-cyber/MobSecco):一个自动化克隆Android应用程序完整过程的工具。
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
支持HackTricks的其他方式:
|
||
|
||
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
|
||
|
||
</details>
|