5.2 KiB
iOS UIActivity Sharing
htARTE(HackTricks AWS Red Team Expert) からAWSハッキングをゼロからヒーローまで学ぶ!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したい場合や HackTricks をPDFでダウンロード したい場合は SUBSCRIPTION PLANS をチェックしてください!
- 公式PEASS&HackTricksスウォッグを入手する
- The PEASS Familyを発見し、独占的な NFTs のコレクションを見つける
- 💬 Discordグループ に参加するか、telegramグループ に参加するか、Twitter 🐦 @carlospolopm をフォローする。
- ハッキングトリックを共有するために、PRを HackTricks と HackTricks Cloud のGitHubリポジトリに提出してください。
UIActivity Sharing Simplified
iOS 6以降、サードパーティアプリケーションは、AppleのInter-App Communicationガイドで説明されているように、AirDropなどのメカニズムを使用してテキスト、URL、画像などのデータを共有できるようになりました。この機能は、"共有"ボタンを操作すると表示されるシステム全体の_共有アクティビティシート_を介して表れます。
すべての組み込み共有オプションの包括的な列挙はUIActivity.ActivityTypeで利用可能です。開発者は、アプリケーションに適さないと判断した場合、特定の共有オプションを除外することができます。
データの共有方法
以下に注意すべき点があります:
- 共有されるデータの性質。
- カスタムアクティビティの含有。
- 特定のアクティビティタイプの除外。
共有は、共有するアイテムが渡されるUIActivityViewController
のインスタンス化を通じて容易に行われます。これは、以下を呼び出すことで達成されます:
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
開発者は、UIActivityViewController
を検討すべきです。初期化されたアクティビティやカスタムアクティビティ、および指定されたexcludedActivityTypes
を確認する必要があります。
データの受信方法
データを受信する際に重要な点は次のとおりです:
- カスタムドキュメントタイプの宣言。
- アプリが開くことができるドキュメントタイプの指定。
- 受信したデータの整合性の検証。
ソースコードにアクセスできない場合でも、Info.plist
を調査して、アプリが処理できるドキュメントの種類や宣言を理解するために、UTExportedTypeDeclarations
、UTImportedTypeDeclarations
、CFBundleDocumentTypes
などのキーを調べることができます。
これらのキーに関する簡潔なガイドは、Stackoverflowで利用可能であり、システム全体での認識やアプリとの統合のためにUTIを定義およびインポートする重要性を強調しています。
動的テストアプローチ
アクティビティの送信をテストするためには、次のことができます:
init(activityItems:applicationActivities:)
メソッドにフックして、共有されるアイテムやアクティビティをキャプチャします。excludedActivityTypes
プロパティを傍受して、除外されたアクティビティを特定します。
アイテムの受信に関しては、次の手順が含まれます:
- 他のソース(AirDrop、メールなど)からアプリにファイルを共有し、「開く」ダイアログを表示します。
- 静的解析中に特定された他のメソッドと共に
application:openURL:options:
をフックして、アプリの応答を観察します。 - アプリの堅牢性を評価するために、不正なファイルやファジング技術を使用します。