iOS Universal Links
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)
ユニバーサルリンクは、シームレスなリダイレクション体験をユーザーに提供し、Safariのリダイレクションをバイパスしてアプリ内のコンテンツを直接開きます。これらのリンクはユニークで安全であり、他のアプリによって主張されることはありません。これは、ウェブサイトのルートディレクトリにapple-app-site-association
JSONファイルをホスティングすることで保証され、ウェブサイトとアプリの間に検証可能なリンクが確立されます。アプリがインストールされていない場合、Safariが引き継ぎ、ユーザーをウェブページに誘導し、アプリの存在を維持します。
ペネトレーションテスターにとって、apple-app-site-association
ファイルは特に興味深いものであり、機密パスを明らかにする可能性があり、未発表の機能に関連するものが含まれる可能性があります。
開発者は、XcodeのCapabilitiesタブで関連ドメインを設定するか、.entitlements
ファイルを検査することでユニバーサルリンクを有効にします。各ドメインはapplinks:
でプレフィックスされます。たとえば、Telegramの設定は次のように表示されるかもしれません:
For more comprehensive insights, refer to the archived Apple Developer Documentation.
If working with a compiled application, entitlements can be extracted as outlined in this guide.
apple-app-site-association
ファイルは、権限で指定されたドメインを使用してサーバーから取得する必要があります。ファイルがhttps://<domain>/apple-app-site-association
でHTTPS経由で直接アクセス可能であることを確認してください。Apple App Site Association (AASA) Validatorのようなツールがこのプロセスを支援できます。
アプリはユニバーサルリンクを正しく処理するために特定のメソッドを実装する必要があります。探すべき主なメソッドはapplication:continueUserActivity:restorationHandler:
です。処理されるURLのスキームがHTTPまたはHTTPSであることが重要であり、他のスキームはサポートされません。
ユニバーサルリンクがアプリを開くと、URLと共にNSUserActivity
オブジェクトがアプリに渡されます。このURLを処理する前に、セキュリティリスクを防ぐために検証とサニタイズを行うことが重要です。以下は、プロセスを示すSwiftの例です:
URLsは慎重に解析および検証する必要があります。特にパラメータが含まれている場合は、潜在的なスプーフィングや不正なデータから守るためです。NSURLComponents
APIはこの目的に役立ちます。以下に示します:
通じて勤勉な設定と検証、開発者はユニバーサルリンクがユーザーエクスペリエンスを向上させると同時に、セキュリティとプライバシー基準を維持することを確実にできます。
GetUniversal.link: アプリのユニバーサルリンクとAASAファイルのテストと管理を簡素化するのに役立ちます。ドメインを入力するだけでAASAファイルの整合性を確認したり、カスタムダッシュボードを使用してリンクの動作を簡単にテストできます。このツールは、Appleが次にAASAファイルをインデックスする時期を判断するのにも役立ちます。
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)