Cordova Apps
Reading time: 8 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Vir verdere besonderhede, kyk na https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Dit is 'n opsomming:
Apache Cordova is bekend vir die moontlikheid om hibridetoepassings te ontwikkel met JavaScript, HTML, en CSS. Dit maak die skepping van Android- en iOS-toepassings moontlik; egter, dit het nie 'n standaardmeganisme om die toepassing se bronkode te beveilig nie. In teenstelling met React Native, kompileer Cordova nie die bronkode nie, wat kan lei tot kwesbaarhede in kode-manipulasie. Cordova gebruik WebView om toepassings te vertoon, wat die HTML- en JavaScript-kode blootstel selfs nadat dit in APK of IPA-lĂȘers gekompileer is. React Native, aan die ander kant, gebruik 'n JavaScript VM om JavaScript-kode uit te voer, wat beter beskerming van die bronkode bied.
Kloning van 'n Cordova-toepassing
Voordat jy 'n Cordova-toepassing kloon, maak seker dat NodeJS geĂŻnstalleer is saam met ander vereistes soos die Android SDK, Java JDK, en Gradle. Die amptelike Cordova dokumentasie bied 'n omvattende gids vir hierdie installasies.
Neem 'n voorbeeldtoepassing genaamd Bank.apk
met die pakketnaam com.android.bank
. Om toegang tot die bronkode te verkry, pak bank.apk
uit en navigeer na die bank/assets/www
gids. Hierdie gids bevat die volledige bronkode van die toepassing, insluitend HTML- en JS-lĂȘers. Die toepassing se konfigurasie kan in bank/res/xml/config.xml
gevind word.
Om die toepassing te kloon, volg hierdie stappe:
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
Kopieer die inhoud van bank/assets/www
na bank-new/www
, met uitsluiting van cordova_plugins.js
, cordova.js
, cordova-js-src/
, en die plugins/
gids.
Specifiseer die platform (Android of iOS) wanneer 'n nuwe Cordova-projek geskep word. Vir die kloon van 'n Android-app, voeg die Android-platform by. Let daarop dat Cordova se platformweergawe en Android API-vlakke verskillend is. Verwys na die Cordova documentation vir besonderhede oor platformweergawe en ondersteunde Android API's.
Om die toepaslike Cordova Android-platformweergawe te bepaal, kyk na die PLATFORM_VERSION_BUILD_LABEL
in die oorspronklike aansoek se cordova.js
-lĂȘer.
Nadat die platform opgestel is, installeer die vereiste plugins. Die oorspronklike aansoek se bank/assets/www/cordova_plugins.js
-lĂȘer lys al die plugins en hul weergawes. Installeer elke plugin individueel soos hieronder getoon:
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
As 'n plugin nie op npm beskikbaar is nie, kan dit van GitHub verkry word:
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
Maak seker dat alle vereistes nagekom word voordat jy saamstel:
cd bank-new
cordova requirements
Om die APK te bou, gebruik die volgende opdrag:
cd bank-new
cordova build android â packageType=apk
Hierdie opdrag genereer 'n APK met die foutopsporing opsie geaktiveer, wat foutopsporing via Google Chrome vergemaklik. Dit is van kardinale belang om die APK te teken voor installasie, veral as die aansoek kode manipulasie opsporing meganismes insluit.
Outomatisering Gereedskap
Vir diegene wat die kloonproses wil outomatiseer, MobSecco is 'n aanbevole gereedskap. Dit stroomlyn die kloon van Android aansoeke, wat die stappe hierbo vereenvoudig.
Sekuriteitsrisiko's & Onlangse Kw vulnerabilities (2023-2025)
Cordova se plugin-gebaseerde argitektuur beteken dat meeste van die aanval oppervlak binne derdeparty plugins en die WebView brug sit. Die volgende probleme is aktief uitgebuit of publiek bekend gemaak in die afgelope paar jaar:
- Kwaadaardige NPM Pakkette. In Julie 2024 is die pakket
cordova-plugin-acuant
uit die NPM registrasie verwyder nadat dit ontdek is dat dit kwaadaardige kode tydens installasie laat val (OSV-ID MAL-2024-7845). Enige ontwikkelaar masjien watnpm install cordova-plugin-acuant
uitgevoer het, moet as gecompromitteerd beskou word. Ouditpackage.json
/package-lock.json
vir onverwagte Cordova plugins en pin vertroude weergawes. OSV advisory - Ongevalideerde Deeplinks â XSS/RCE.
CleverTap Cordova Plugin †2.6.2
(CVE-2023-2507) slaag daarin om deeplink invoer te saniteer, wat 'n aanvaller toelaat om arbitrĂȘre JavaScript in te voeg wat in die hoof WebView konteks uitgevoer word wanneer 'n vervaardigde skakel geopen word. Opdateer na â„ 2.6.3 of verwyder onbetroubare URI parameters tydens uitvoering. CVE-2023-2507 - Verouderde Platform Kode.
cordova-android
†12 verskaf met targetSdk 33 of laer. Begin Mei 2024 vereis Google Play API 34, en verskeie WebView versterking funksies (bv. outomaties gegenereerdeexported="false"
vir komponente) is slegs teenwoordig in API 34+. Opgradeer nacordova-android@13.0.0
of later.
Vinige kontroles tydens 'n pentest
- Soek vir
android:debuggable="true"
in die gedecompileerdeAndroidManifest.xml
. Debugbare weergawes stel die WebView bloot oorchrome://inspect
wat volle JS-inspuiting toelaat. - Hersien
config.xml
vir oordrewe toelaatbare<access origin="*">
etikette of ontbrekende CSP meta-etikette inwww/index.html
. - Grep
www/
vireval(
,new Function(
of dinamies-geboude HTML wat CSP omseilings in XSS kan omskep. - Identifiseer ingebedde plugins in
plugins/
en voernpm audit --production
ofosv-scanner --lockfile
uit om bekende CVEs te vind.
Dinamiese Analise Wenke
Afgeleë WebView Foutopsporing
As die aansoek in debug modus gecompileer is (of eksplisiet WebView.setWebContentsDebuggingEnabled(true)
aanroep), kan jy Chrome DevTools aanheg:
adb forward tcp:9222 localabstract:chrome_devtools_remote
google-chrome --new-window "chrome://inspect/#devices"
Dit gee jou 'n lewendige JavaScript-konsol, DOM-inspekteerder en die vermoĂ« om JavaScript-funksies tydens uitvoering te oorskryf â uiters handig om kliĂ«nt-kant logika te omseil. (Sien Google se amptelike dokumentasie vir meer besonderhede.)
Hooking the JS â Native bridge with Frida
Die Java-kant toegangspunt van die meeste plugins is org.apache.cordova.CordovaPlugin.execute(...)
. Hooking hierdie metode laat jou toe om oproepe wat van JavaScript gemaak word, te monitor of te manipuleer:
// frida -U -f com.vulnerable.bank -l hook.js --no-pause
Java.perform(function () {
var CordovaPlugin = Java.use('org.apache.cordova.CordovaPlugin');
CordovaPlugin.execute.overload('java.lang.String','org.json.JSONArray','org.apache.cordova.CallbackContext').implementation = function(act, args, ctx) {
console.log('[Cordova] ' + act + ' => ' + args);
// Tamper the first argument of a sensitive action
if (act === 'encrypt') {
args.put(0, '1234');
}
return this.execute(act, args, ctx);
};
});
Versterking Aanbevelings (2025)
- Opdateer na die nuutste platform:
cordova-android@13
(Mei 2024) teiken API 34 en bring nuwe WebView versagings. - Verwyder debug artefakte: Verseker
android:debuggable="false"
en vermy omsetWebContentsDebuggingEnabled
in vrystellingsboude aan te roep. - Handhaaf 'n streng CSP & AllowList: Voeg 'n
<meta http-equiv="Content-Security-Policy" ...>
tag in elke HTML-lĂȘer by en beperk<access>
oorspronge inconfig.xml
. Voorbeeld minimale CSP wat inline skripte blokkeer:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'">
- Deaktiveer duidelike teks verkeer: In
AndroidManifest.xml
stelandroid:usesCleartextTraffic="false"
in en/of verskaf 'n [network-security-config] wat TLS afdwing. - Plugin higiëne:
- Pin plugin weergawes met
npm ci
en commit die gegenereerdepackage-lock.json
. - Periodes loop
npm audit
,osv-scanner
ofcordova-check-plugins
. - Obfuskasie: Minify JavaScript met Terser/UglifyJS en verwyder bronkaarte uit produksieboude om informele omkering te vertraag.
Verwysings
- Apache Cordova â Cordova-Android 13.0.0 vrylating notas (Mei 2024)
- OSV-ID MAL-2024-7845 â Kwaadwillige kode in
cordova-plugin-acuant
- CVE-2023-2507 â CleverTap Cordova Plugin deeplink XSS
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.