GCP - Firebase Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Firebase Realtime Database to hostowana w chmurze baza danych NoSQL, która pozwala na przechowywanie i synchronizowanie danych między użytkownikami w czasie rzeczywistym. Dowiedz się więcej.
Niektóre punkty końcowe Firebase mogą być znalezione w aplikacjach mobilnych. Możliwe, że używany punkt końcowy Firebase jest źle skonfigurowany, przyznając wszystkim uprawnienia do odczytu (i zapisu).
To jest powszechna metodologia do wyszukiwania i wykorzystywania źle skonfigurowanych baz danych Firebase:
Pobierz APK aplikacji, możesz użyć dowolnego narzędzia, aby uzyskać APK z urządzenia dla tego POC. Możesz użyć “APK Extractor” https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
Dezkompiluj APK używając apktool, wykonaj poniższe polecenie, aby wyodrębnić kod źródłowy z APK.
Przejdź do res/values/strings.xml i poszukaj tego oraz wyszukaj słowo kluczowe “firebase”
Możesz znaleźć coś takiego jak ten URL “https://xyz.firebaseio.com/”
Następnie przejdź do przeglądarki i nawiguj do znalezionego URL: https://xyz.firebaseio.com/.json
Mogą pojawić się 2 typy odpowiedzi:
“Permission Denied”: To oznacza, że nie masz dostępu, więc jest dobrze skonfigurowane
Odpowiedź “null” lub mnóstwo danych JSON: To oznacza, że baza danych jest publiczna i masz przynajmniej dostęp do odczytu.
W takim przypadku możesz sprawdzić uprawnienia do zapisu, exploit do testowania uprawnień do zapisu można znaleźć tutaj: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Ciekawa uwaga: Podczas analizy aplikacji mobilnej za pomocą MobSF, jeśli znajdzie bazę danych firebase, sprawdzi, czy jest publicznie dostępna i powiadomi o tym.
Alternatywnie, możesz użyć Firebase Scanner, skryptu w Pythonie, który automatyzuje powyższe zadanie, jak pokazano poniżej:
Jeśli masz dane uwierzytelniające do uzyskania dostępu do bazy danych Firebase, możesz użyć narzędzia takiego jak Baserunner, aby łatwiej uzyskać dostęp do przechowywanych informacji. Lub skryptu takiego jak poniższy:
Aby przetestować inne działania na bazie danych, takie jak zapis do bazy danych, zapoznaj się z dokumentacją Pyrebase4, którą można znaleźć tutaj.
Jeśli dekompilujesz aplikację iOS i otworzysz plik GoogleService-Info.plist
, znajdziesz klucz API i identyfikator APP:
KLUCZ API AIzaSyAs1[...]
IDENTYFIKATOR APP 1:612345678909:ios:c212345678909876
Możesz uzyskać dostęp do interesujących informacji
Żądanie
curl -v -X POST "https://firebaseremoteconfig.googleapis.com/v1/projects/612345678909/namespaces/firebase:fetch?key=AIzaSyAs1[...]" -H "Content-Type: application/json" --data '{"appId": "1:612345678909:ios:c212345678909876", "appInstanceId": "PROD"}'
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)