Cordova Apps
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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.
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:
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:
Jeśli wtyczka nie jest dostępna na npm, można ją pobrać z GitHub:
Upewnij się, że wszystkie wymagania wstępne są spełnione przed kompilacją:
Aby zbudować APK, użyj następującego polecenia:
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.
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)