React Native Application
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)
アプリケーションが React Native フレームワークで構築されているか確認するには、以下の手順に従ってください。
APK ファイルの名前を zip 拡張子に変更し、コマンド cp com.example.apk example-apk.zip
と unzip -qq example-apk.zip -d ReactNative
を使用して新しいフォルダーに抽出します。
新しく作成された ReactNative フォルダーに移動し、assets フォルダーを見つけます。このフォルダー内に、minified 形式の React JavaScript を含む index.android.bundle
ファイルがあるはずです。
コマンド find . -print | grep -i ".bundle$"
を使用して JavaScript ファイルを検索します。
JavaScript コードをさらに分析するには、同じディレクトリに index.html
という名前のファイルを作成し、以下のコードを記述します:
ファイルをhttps://spaceraccoon.github.io/webpack-exploder/にアップロードするか、次の手順に従ってください。
Google Chromeでindex.html
ファイルを開きます。
OS Xの場合はCommand+Option+J、Windowsの場合はControl+Shift+Jを押してDeveloper Toolbarを開きます。
Developer Toolbarで「Sources」をクリックします。フォルダーとファイルに分割されたJavaScriptファイルが表示され、メインバンドルを構成しています。
index.android.bundle.map
というファイルが見つかれば、非圧縮形式でソースコードを分析できます。マップファイルにはソースマッピングが含まれており、圧縮された識別子をマッピングできます。
機密の資格情報やエンドポイントを検索するには、次の手順に従ってください。
JavaScriptコードを分析するための機密キーワードを特定します。React Nativeアプリケーションは、Firebase、AWS S3サービスエンドポイント、プライベートキーなどのサードパーティサービスを使用することがよくあります。
この特定のケースでは、アプリケーションがDialogflowサービスを使用していることが観察されました。その設定に関連するパターンを検索します。
再コンプロセス中にJavaScriptコード内で機密のハードコーディングされた資格情報が見つかったのは幸運でした。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)