React Native Application
Analisi dell'Applicazione React Native
Per confermare se l'applicazione è stata costruita sul framework React Native, segui questi passaggi:
Rinomina il file APK con un'estensione zip ed estrailo in una nuova cartella usando il comando
cp com.example.apk example-apk.zip
eunzip -qq example-apk.zip -d ReactNative
.Naviga nella nuova cartella ReactNative e individua la cartella assets. All'interno di questa cartella, dovresti trovare il file
index.android.bundle
, che contiene il JavaScript React in un formato minificato.Usa il comando
find . -print | grep -i ".bundle$"
per cercare il file JavaScript.
Per analizzare ulteriormente il codice JavaScript, crea un file chiamato index.html
nella stessa directory con il seguente codice:
Puoi caricare il file su https://spaceraccoon.github.io/webpack-exploder/ o seguire questi passaggi:
Apri il file
index.html
in Google Chrome.Apri la Developer Toolbar premendo Command+Option+J per OS X o Control+Shift+J per Windows.
Clicca su "Sources" nella Developer Toolbar. Dovresti vedere un file JavaScript suddiviso in cartelle e file, che compongono il bundle principale.
Se trovi un file chiamato index.android.bundle.map
, sarai in grado di analizzare il codice sorgente in un formato non minificato. I file di mappatura contengono mappature sorgente, che ti permettono di mappare identificatori minificati.
Per cercare credenziali sensibili e endpoint, segui questi passaggi:
Identifica parole chiave sensibili per analizzare il codice JavaScript. Le applicazioni React Native spesso utilizzano servizi di terze parti come Firebase, endpoint del servizio AWS S3, chiavi private, ecc.
In questo caso specifico, è stato osservato che l'applicazione utilizzava il servizio Dialogflow. Cerca un modello relativo alla sua configurazione.
È stato fortunato che credenziali sensibili hard-coded siano state trovate nel codice JavaScript durante il processo di ricognizione.
Riferimenti
Last updated