iOS UIActivity Sharing
Reading time: 5 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
UIActivity Sharing Simplified
iOS 6以降、サードパーティアプリケーションは、AppleのInter-App Communication guideに記載されているように、AirDropなどのメカニズムを使用してデータ(テキスト、URL、画像など)を共有できるようになりました。この機能は、「共有」ボタンと対話することで表示されるシステム全体の_共有アクティビティシート_を通じて現れます。
すべての組み込み共有オプションの包括的な列挙は、UIActivity.ActivityTypeで利用可能です。開発者は、アプリケーションに不適切と判断した特定の共有オプションを除外することができます。
How to Share Data
注意すべき点は以下の通りです:
- 共有されるデータの性質。
- カスタムアクティビティの含有。
- 特定のアクティビティタイプの除外。
共有は、共有するアイテムを渡す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、メール)からアプリにファイルを共有し、「Open with...」ダイアログを表示させる。
- 静的分析中に特定された他のメソッドの中で
application:openURL:options:
にフックして、アプリの応答を観察する。 - 不正なファイルやファジング技術を使用してアプリの堅牢性を評価する。
参考文献
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。