mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
4.2 KiB
Markdown
54 lines
4.2 KiB
Markdown
# 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 코드를 실행하기 위해 JavaScript VM을 사용하여 더 나은 소스 코드 보호를 제공합니다.
|
|
|
|
### Cordova 애플리케이션 복제
|
|
|
|
Cordova 애플리케이션을 복제하기 전에 NodeJS와 Android SDK, Java JDK, Gradle과 같은 기타 필수 구성 요소가 설치되어 있는지 확인하세요. 공식 Cordova [문서](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building)는 이러한 설치에 대한 포괄적인 가이드를 제공합니다.
|
|
|
|
`com.android.bank` 패키지 이름을 가진 `Bank.apk`라는 예제 애플리케이션을 고려해 보세요. 소스 코드에 접근하려면 `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}}
|