React Native Application
Analisi dell'applicazione React Native
Per confermare se l'applicazione è stata creata con il framework React Native, seguire questi passaggi:
Rinomina il file APK con l'estensione zip e estrailo in una nuova cartella utilizzando il comando
cp com.example.apk example-apk.zip
eunzip -qq example-apk.zip -d ReactNative
.Passa alla nuova cartella ReactNative appena creata e individua la cartella assets. All'interno di questa cartella dovresti trovare il file
index.android.bundle
, che contiene il codice JavaScript di React in formato minificato.Utilizza 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 Console degli sviluppatori premendo Command+Option+J per OS X o Control+Shift+J per Windows.
Fai clic su "Sources" nella Console degli sviluppatori. 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 il mapping del codice sorgente, che ti consente di mappare gli identificatori minificati.
Per cercare credenziali sensibili e endpoint, segui questi passaggi:
Identifica le parole chiave sensibili da analizzare nel 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 pattern relativo alla sua configurazione.
È stato fortunato trovare credenziali sensibili codificate nel codice JavaScript durante il processo di riconoscimento.
Riferimenti
Last updated