mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
92 lines
7.5 KiB
Markdown
92 lines
7.5 KiB
Markdown
# Cordova 应用
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||
|
||
* 你在一家 **网络安全公司** 工作吗?想要在 HackTricks 中 **宣传你的公司** 吗?或者你想要获得 **PEASS 的最新版本或下载 HackTricks 的 PDF 版本** 吗?请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注** 我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 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>Cordova插件</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><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||
|
||
</details>
|