GCP - Firebase Enum
Last updated
Last updated
Learn & practice AWS Hacking: Learn & practice GCP Hacking:
Firebase Realtime Database to hostowana w chmurze baza danych NoSQL, która pozwala na przechowywanie i synchronizację danych między użytkownikami w czasie rzeczywistym. .
Niektóre punkty końcowe Firebase mogą być znalezione w aplikacjach mobilnych. Istnieje możliwość, że używany punkt końcowy Firebase jest źle skonfigurowany, przyznając wszystkim uprawnienia do odczytu (i zapisu).
To jest powszechna metodologia 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”
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:
Ciekawa uwaga: Podczas analizy aplikacji mobilnej za pomocą MobSF, jeśli znajdzie bazę danych firebase, sprawdzi, czy jest ona publicznie dostępna i powiadomi o tym.
Jeśli dekompilujesz aplikację iOS i otworzysz plik GoogleService-Info.plist
, znajdziesz klucz API i APP ID:
KLUCZ API AIzaSyAs1[...]
APP ID 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"}'
Alternatywnie, możesz użyć , 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 , 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źć .
Ucz się i ćwicz Hacking AWS: Ucz się i ćwicz Hacking GCP:
Sprawdź !
Dołącz do 💬 lub lub śledź nas na Twitterze 🐦 .
Podziel się sztuczkami hackingowymi, przesyłając PR-y do i repozytoriów na GitHubie.