hacktricks/mobile-pentesting/android-app-pentesting/react-native-application.md

4.6 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Analiza aplikacji React Native

Aby potwierdzić, czy aplikacja została zbudowana na frameworku React Native, wykonaj następujące kroki:

  1. Zmień nazwę pliku APK na plik zip i rozpakuj go do nowego folderu, używając polecenia cp com.example.apk example-apk.zip i unzip -qq example-apk.zip -d ReactNative.

  2. Przejdź do nowo utworzonego folderu ReactNative i zlokalizuj folder assets. Wewnątrz tego folderu powinieneś znaleźć plik index.android.bundle, który zawiera React JavaScript w zminimalizowanym formacie.

  3. Użyj polecenia find . -print | grep -i ".bundle$" aby wyszukać plik JavaScript.

Aby dalej analizować kod JavaScript, utwórz plik o nazwie index.html w tym samym katalogu z następującym kodem:

<script src="./index.android.bundle"></script>

Możesz przesłać plik na https://spaceraccoon.github.io/webpack-exploder/ lub postępować zgodnie z tymi krokami:

  1. Otwórz plik index.html w Google Chrome.

  2. Otwórz Pasek Narzędzi Dewelopera, naciskając Command+Option+J dla OS X lub Control+Shift+J dla Windows.

  3. Kliknij na "Sources" w Pasek Narzędzi Dewelopera. Powinieneś zobaczyć plik JavaScript podzielony na foldery i pliki, które tworzą główny pakiet.

Jeśli znajdziesz plik o nazwie index.android.bundle.map, będziesz mógł analizować kod źródłowy w niezmienionej formie. Pliki map zawierają mapowanie źródła, co pozwala na mapowanie zminifikowanych identyfikatorów.

Aby wyszukać wrażliwe dane uwierzytelniające i punkty końcowe, postępuj zgodnie z tymi krokami:

  1. Zidentyfikuj wrażliwe słowa kluczowe do analizy kodu JavaScript. Aplikacje React Native często korzystają z usług stron trzecich, takich jak Firebase, punkty końcowe usługi AWS S3, klucze prywatne itp.

  2. W tym konkretnym przypadku zaobserwowano, że aplikacja korzysta z usługi Dialogflow. Wyszukaj wzór związany z jej konfiguracją.

  3. Miałeś szczęście, że wrażliwe dane uwierzytelniające zakodowane na stałe zostały znalezione w kodzie JavaScript podczas procesu rekonesansu.

References

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}