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は、ユーザー間でデータをリアルタイムで保存および同期できるクラウドホストのNoSQLデータベースです。Learn more。
一部のFirebaseエンドポイントはモバイルアプリケーションに存在する可能性があります。使用されているFirebaseエンドポイントが不適切に構成されており、誰でも読み取り(および書き込み)権限を持っている可能性があります。
これは、不適切に構成されたFirebaseデータベースを検索して悪用するための一般的な方法論です:
APKを取得します。POCのためにデバイスからAPKを取得するために任意のツールを使用できます。 「APK Extractor」を使用できます https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
apktoolを使用してAPKをデコンパイルします。以下のコマンドに従ってAPKからソースコードを抽出します。
_res/values/strings.xml_に移動し、「firebase」キーワードを検索します。
「https://xyz.firebaseio.com/」のようなURLが見つかるかもしれません。
次に、ブラウザに移動し、見つけたURLに移動します:https://xyz.firebaseio.com/.json
2種類のレスポンスが表示される可能性があります:
「Permission Denied」:これはアクセスできないことを意味し、適切に構成されています。
「null」レスポンスまたは一連のJSONデータ:これはデータベースが公開されており、少なくとも読み取りアクセスがあることを意味します。
この場合、書き込み権限を確認できます。書き込み権限をテストするためのエクスプロイトはここにあります:https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
興味深い注記:MobSFを使用してモバイルアプリケーションを分析する際、Firebaseデータベースが見つかると、それが公開されているかどうかを確認し、通知します。
また、Firebase Scannerを使用することもできます。これは、上記のタスクを自動化するPythonスクリプトです。
Firebaseデータベースにアクセスするための資格情報がある場合、Baserunnerのようなツールを使用して、保存された情報により簡単にアクセスできます。または、次のようなスクリプトを使用できます:
他のデータベースアクションをテストするには、データベースへの書き込みなど、ここにあるPyrebase4のドキュメントを参照してください。
iOSアプリケーションを逆コンパイルし、GoogleService-Info.plist
ファイルを開くと、APIキーとAPP IDが見つかる場合があります:
API KEY AIzaSyAs1[...]
APP ID 1:612345678909:ios:c212345678909876
興味深い情報にアクセスできるかもしれません。
リクエスト
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"}'
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)