React Native Application
Analiza aplikacji React Native
Aby potwierdzić, czy aplikacja została zbudowana na platformie React Native, wykonaj następujące kroki:
Zmień nazwę pliku APK na rozszerzenie zip i wypakuj go do nowego folderu za pomocą polecenia
cp com.example.apk example-apk.zip
iunzip -qq example-apk.zip -d ReactNative
.Przejdź do nowo utworzonego folderu ReactNative i znajdź folder assets. Wewnątrz tego folderu powinieneś znaleźć plik
index.android.bundle
, który zawiera kod JavaScript React w zminifikowanym formacie.Użyj polecenia
find . -print | grep -i ".bundle$"
aby wyszukać plik JavaScript.
Aby dalszo analizować kod JavaScript, utwórz plik o nazwie index.html
w tym samym katalogu z następującym kodem:
Możesz przesłać plik na https://spaceraccoon.github.io/webpack-exploder/ lub postępować zgodnie z poniższymi krokami:
Otwórz plik
index.html
w przeglądarce Google Chrome.Otwórz Pasek Narzędzi Deweloperskich, naciskając Command+Option+J dla systemu OS X lub Control+Shift+J dla systemu Windows.
Kliknij "Sources" w Pasku Narzędzi Deweloperskich. Powinieneś zobaczyć plik JavaScript podzielony na foldery i pliki, tworzące główny pakiet.
Jeśli znajdziesz plik o nazwie index.android.bundle.map
, będziesz mógł analizować kod źródłowy w formacie niezmienionym przez minifikację. Pliki map zawierają mapowanie źródła, które pozwala na odwzorowanie zminifikowanych identyfikatorów.
Aby wyszukać poufne dane uwierzytelniające i punkty końcowe, postępuj zgodnie z poniższymi krokami:
Zidentyfikuj wrażliwe słowa kluczowe do analizy kodu JavaScript. Aplikacje React Native często korzystają z usług osób trzecich, takich jak Firebase, punkty końcowe usługi AWS S3, klucze prywatne, itp.
W tym konkretnym przypadku zaobserwowano, że aplikacja korzysta z usługi Dialogflow. Wyszukaj wzorzec związany z jej konfiguracją.
W trakcie procesu rozpoznawania udało się znaleźć wrażliwe dane uwierzytelniające wpisane na stałe w kodzie JavaScript.
Referencje
Last updated