2.4 KiB
{{#include ../../banners/hacktricks-training.md}}
Analiza React Native Aplikacije
Da biste potvrdili da li je aplikacija izgrađena na React Native okviru, pratite ove korake:
-
Preimenujte APK datoteku sa zip ekstenzijom i raspakujte je u novu fasciklu koristeći komandu
cp com.example.apk example-apk.zip
iunzip -qq example-apk.zip -d ReactNative
. -
Idite u novokreiranu ReactNative fasciklu i pronađite fasciklu assets. Unutar ove fascikle, trebali biste pronaći datoteku
index.android.bundle
, koja sadrži React JavaScript u minifikovanom formatu. -
Koristite komandu
find . -print | grep -i ".bundle$"
da biste pretražili JavaScript datoteku.
Da biste dalje analizirali JavaScript kod, kreirajte datoteku pod imenom index.html
u istoj direktoriji sa sledećim kodom:
<script src="./index.android.bundle"></script>
Možete da otpremite datoteku na https://spaceraccoon.github.io/webpack-exploder/ ili pratite ove korake:
-
Otvorite
index.html
datoteku u Google Chrome-u. -
Otvorite Developer Toolbar pritiskom na Command+Option+J za OS X ili Control+Shift+J za Windows.
-
Kliknite na "Sources" u Developer Toolbar-u. Trebalo bi da vidite JavaScript datoteku koja je podeljena na foldere i datoteke, čineći glavni paket.
Ako pronađete datoteku pod nazivom index.android.bundle.map
, moći ćete da analizirate izvorni kod u nekompresovanom formatu. Map datoteke sadrže izvorno mapiranje, što vam omogućava da mapirate kompresovane identifikatore.
Da biste pretražili osetljive akreditive i krajnje tačke, pratite ove korake:
-
Identifikujte osetljive ključne reči za analizu JavaScript koda. React Native aplikacije često koriste usluge trećih strana kao što su Firebase, AWS S3 krajnje tačke, privatni ključevi itd.
-
U ovom konkretnom slučaju, primećeno je da aplikacija koristi Dialogflow uslugu. Potražite obrazac povezan sa njenom konfiguracijom.
-
Bilo je sreće što su osetljivi hard-kodirani akreditive pronađeni u JavaScript kodu tokom recon procesa.
Reference
{{#include ../../banners/hacktricks-training.md}}