Cordova Apps
Reading time: 8 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kwa maelezo zaidi angalia https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Hii ni muhtasari:
Apache Cordova inatambulika kwa kuwezesha maendeleo ya maombi ya mchanganyiko kwa kutumia JavaScript, HTML, na CSS. Inaruhusu uundaji wa maombi ya Android na iOS; hata hivyo, haina mekanizma ya msingi ya kulinda msimbo wa chanzo wa programu. Kinyume na React Native, Cordova haitengenezi msimbo wa chanzo kwa msingi, ambayo inaweza kusababisha udhaifu wa kubadilisha msimbo. Cordova inatumia WebView kuonyesha maombi, ikifunua msimbo wa HTML na JavaScript hata baada ya kutengenezwa kuwa faili za APK au IPA. React Native, kinyume chake, inatumia JavaScript VM kutekeleza msimbo wa JavaScript, ikitoa ulinzi bora wa msimbo wa chanzo.
Cloning a Cordova Application
Kabla ya kunakili programu ya Cordova, hakikisha kuwa NodeJS imewekwa pamoja na mahitaji mengine kama Android SDK, Java JDK, na Gradle. Miongozo rasmi ya Cordova documentation inatoa mwongozo kamili wa usakinishaji huu.
Fikiria mfano wa programu inayoitwa Bank.apk
yenye jina la kifurushi com.android.bank
. Ili kufikia msimbo wa chanzo, fungua bank.apk
na uelekee kwenye folda bank/assets/www
. Folda hii ina msimbo kamili wa chanzo wa programu, ikiwa ni pamoja na faili za HTML na JS. Mipangilio ya programu inaweza kupatikana katika bank/res/xml/config.xml
.
Ili kunakili programu, fuata hatua hizi:
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
Nakili maudhui ya bank/assets/www
hadi bank-new/www
, ukiondoa cordova_plugins.js
, cordova.js
, cordova-js-src/
, na saraka ya plugins/
.
Taja jukwaa (Android au iOS) unapounda mradi mpya wa Cordova. Kwa kunakili programu ya Android, ongeza jukwaa la Android. Kumbuka kwamba toleo za jukwaa la Cordova na viwango vya API vya Android ni tofauti. Rejelea documentation ya Cordova kwa maelezo kuhusu toleo za jukwaa na APIs za Android zinazoungwa mkono.
Ili kubaini toleo sahihi la jukwaa la Cordova Android, angalia PLATFORM_VERSION_BUILD_LABEL
katika faili ya cordova.js
ya programu ya awali.
Baada ya kuweka jukwaa, sakinisha plugins zinazohitajika. Faili ya bank/assets/www/cordova_plugins.js
ya programu ya awali inataja plugins zote na toleo zao. Sakinisha kila plugin moja kwa moja kama inavyoonyeshwa hapa chini:
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
Ikiwa plugin haipatikani kwenye npm, inaweza kupatikana kutoka GitHub:
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
Hakikisha kuwa mahitaji yote ya awali yamekamilishwa kabla ya kukusanya:
cd bank-new
cordova requirements
Ili kujenga APK, tumia amri ifuatayo:
cd bank-new
cordova build android — packageType=apk
Hii amri inazalisha APK yenye chaguo la debug limewezeshwa, ikirahisisha ufuatiliaji kupitia Google Chrome. Ni muhimu kusaini APK kabla ya usakinishaji, hasa ikiwa programu ina mifumo ya kugundua uharibifu wa msimbo.
Zana ya Utaftaji
Kwa wale wanaotafuta kuharakisha mchakato wa cloning, MobSecco ni zana inayopendekezwa. Inarahisisha cloning ya programu za Android, ikifanya hatua zilizoelezwa hapo juu kuwa rahisi.
Hatari za Usalama & Uhalifu wa Karibuni (2023-2025)
Msingi wa programu za Cordova una maana kwamba sehemu kubwa ya mashambulizi iko ndani ya plugins za wahusika wengine na daraja la WebView. Masuala yafuatayo yamekuwa yakitumiwa kwa nguvu au kufichuliwa hadharani katika miaka michache iliyopita:
- Pakiti za NPM Mbaya. Mnamo Julai 2024, pakiti
cordova-plugin-acuant
iliondolewa kutoka kwenye rejista ya NPM baada ya kugundulika ikitupa msimbo mbaya wakati wa usakinishaji (OSV-ID MAL-2024-7845). Kila mashine ya developer iliyotekelezanpm install cordova-plugin-acuant
inapaswa kuzingatiwa kuwa imeathirika. Kaguapackage.json
/package-lock.json
kwa plugins za Cordova zisizotarajiwa na uweke toleo lililoaminika. OSV advisory - Deeplinks Zisizothibitishwa → XSS/RCE.
CleverTap Cordova Plugin ≤ 2.6.2
(CVE-2023-2507) inashindwa kusafisha pembejeo za deeplink, ikiruhusu mshambuliaji kuingiza JavaScript isiyo ya kawaida inayotekelezwa katika muktadha wa WebView kuu wakati kiungo kilichoundwa kinapofunguliwa. Sasisha hadi ≥ 2.6.3 au ondoa vigezo vya URI visivyoaminika wakati wa utekelezaji. CVE-2023-2507 - Msimbo wa Jukwaa Usio wa Kisasa.
cordova-android
≤ 12 inakuja na targetSdk 33 au chini. Kuanzia Mei 2024, Google Play inahitaji API 34, na vipengele kadhaa vya kuimarisha WebView (k.m.exported="false"
inayozalishwa kiotomatiki kwa vipengele) vinapatikana tu katika API 34+. Pandisha hadicordova-android@13.0.0
au baadaye.
Ukaguzi wa Haraka wakati wa pentest
- Tafuta
android:debuggable="true"
katikaAndroidManifest.xml
iliyotafsiriwa. Ujenzi wa debug unafichua WebView kupitiachrome://inspect
ikiruhusu kuingiza JS kwa ukamilifu. - Kagua
config.xml
kwa lebo za<access origin="*">
zenye ruhusa nyingi au lebo za CSP meta ambazo hazipo katikawww/index.html
. - Grep
www/
kwaeval(
,new Function(
au HTML iliyojengwa kwa njia ya kidinari ambayo inaweza kubadilisha bypasses za CSP kuwa XSS. - Tambua plugins zilizojumuishwa katika
plugins/
na uendeshenpm audit --production
auosv-scanner --lockfile
ili kupata CVEs zinazojulikana.
Vidokezo vya Uchambuzi wa Kijamii
Ufuatiliaji wa WebView wa Kijijini
Ikiwa programu imeundwa katika debug mode (au inaita kwa wazi WebView.setWebContentsDebuggingEnabled(true)
), unaweza kuunganisha Chrome DevTools:
adb forward tcp:9222 localabstract:chrome_devtools_remote
google-chrome --new-window "chrome://inspect/#devices"
Hii inakupa console ya JavaScript ya moja kwa moja, mtafutaji wa DOM na uwezo wa kubadilisha kazi za JavaScript wakati wa utekelezaji – ni rahisi sana kwa kupita logic ya upande wa mteja. (Tazama nyaraka rasmi za Google kwa maelezo zaidi.)
Kuunganisha daraja la JS ⇄ Native na Frida
Nukta ya kuingia upande wa Java ya plugins nyingi ni org.apache.cordova.CordovaPlugin.execute(...)
. Kuunganisha njia hii kunakupa uwezo wa kufuatilia au kuingilia kati simu zinazofanywa kutoka JavaScript:
// 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);
};
});
Mapendekezo ya Kuimarisha (2025)
- Sasisha kwenye jukwaa la hivi punde:
cordova-android@13
(Mei 2024) inalenga API 34 na inaleta mipango mipya ya WebView. - Ondoa vitu vya debug: Hakikisha
android:debuggable="false"
na epuka kuitasetWebContentsDebuggingEnabled
katika toleo la kutolewa. - Lazimisha CSP kali & Orodha ya Ruhusa: Ongeza
<meta http-equiv="Content-Security-Policy" ...>
tag katika kila faili ya HTML na punguza asili za<access>
katikaconfig.xml
. Mfano wa CSP ya chini inayozuia scripts za ndani:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'">
- Zima trafiki ya maandiko wazi: Katika
AndroidManifest.xml
wekaandroid:usesCleartextTraffic="false"
na/au toa [network-security-config] inayolazimisha TLS. - Usafi wa Plugin:
- Funga toleo za plugin kwa
npm ci
na uwekepackage-lock.json
iliyozalishwa. - Endesha mara kwa mara
npm audit
,osv-scanner
aucordova-check-plugins
. - Obfuscation: Punguza JavaScript kwa Terser/UglifyJS na ondolea ramani za chanzo kutoka kwa toleo la uzalishaji ili kuzuia kurudi nyuma kwa urahisi.
Marejeo
- Apache Cordova – Nota za kutolewa za Cordova-Android 13.0.0 (Mei 2024)
- OSV-ID MAL-2024-7845 – Kanuni mbaya katika
cordova-plugin-acuant
- CVE-2023-2507 – CleverTap Cordova Plugin deeplink XSS
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.