5.9 KiB
Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Aby uzyskać więcej szczegółów, sprawdź https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Oto podsumowanie:
Apache Cordova jest uznawany za umożliwiający rozwój aplikacji hybrydowych przy użyciu JavaScript, HTML i CSS. Umożliwia tworzenie aplikacji na Androida i iOS; jednak nie ma domyślnego mechanizmu zabezpieczającego kod źródłowy aplikacji. W przeciwieństwie do React Native, Cordova nie kompiluje kodu źródłowego domyślnie, co może prowadzić do podatności na manipulację kodem. Cordova wykorzystuje WebView do renderowania aplikacji, co ujawnia kod HTML i JavaScript nawet po skompilowaniu do plików APK lub IPA. React Native z kolei wykorzystuje VM JavaScript do wykonywania kodu JavaScript, oferując lepszą ochronę kodu źródłowego.
Klonowanie aplikacji Cordova
Przed sklonowaniem aplikacji Cordova upewnij się, że NodeJS jest zainstalowany wraz z innymi wymaganiami, takimi jak Android SDK, Java JDK i Gradle. Oficjalna dokumentacja Cordova dokumentacja zawiera szczegółowy przewodnik dotyczący tych instalacji.
Rozważ przykład aplikacji o nazwie Bank.apk
z nazwą pakietu com.android.bank
. Aby uzyskać dostęp do kodu źródłowego, rozpakuj bank.apk
i przejdź do folderu bank/assets/www
. Ten folder zawiera pełny kod źródłowy aplikacji, w tym pliki HTML i JS. Konfigurację aplikacji można znaleźć w bank/res/xml/config.xml
.
Aby sklonować aplikację, wykonaj następujące kroki:
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
Skopiuj zawartość bank/assets/www
do bank-new/www
, z wyłączeniem cordova_plugins.js
, cordova.js
, cordova-js-src/
oraz katalogu plugins/
.
Określ platformę (Android lub iOS) podczas tworzenia nowego projektu Cordova. Aby sklonować aplikację na Androida, dodaj platformę Android. Zauważ, że wersje platformy Cordova i poziomy API Androida są różne. Zapoznaj się z dokumentacją Cordova documentation w celu uzyskania szczegółowych informacji na temat wersji platformy i obsługiwanych API Androida.
Aby określić odpowiednią wersję platformy Cordova Android, sprawdź PLATFORM_VERSION_BUILD_LABEL
w pliku cordova.js
oryginalnej aplikacji.
Po skonfigurowaniu platformy zainstaluj wymagane wtyczki. Plik bank/assets/www/cordova_plugins.js
oryginalnej aplikacji zawiera listę wszystkich wtyczek i ich wersji. Zainstaluj każdą wtyczkę indywidualnie, jak pokazano poniżej:
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
Jeśli wtyczka nie jest dostępna na npm, można ją pobrać z GitHub:
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
Upewnij się, że wszystkie wymagania wstępne są spełnione przed kompilacją:
cd bank-new
cordova requirements
Aby zbudować APK, użyj następującego polecenia:
cd bank-new
cordova build android — packageType=apk
To polecenie generuje APK z włączoną opcją debugowania, co ułatwia debugowanie za pomocą Google Chrome. Kluczowe jest podpisanie APK przed instalacją, szczególnie jeśli aplikacja zawiera mechanizmy wykrywania manipulacji kodem.
Narzędzie Automatyzacji
Dla tych, którzy chcą zautomatyzować proces klonowania, MobSecco jest polecanym narzędziem. Ułatwia klonowanie aplikacji na Androida, upraszczając opisane powyżej kroki.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.