iOS UIActivity Sharing

iOS UIActivity Sharing

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Vereinfachtes UIActivity Sharing

Ab iOS 6 können Drittanbieteranwendungen Daten wie Text, URLs oder Bilder über Mechanismen wie AirDrop teilen, wie in Apples Inter-App Communication Guide beschrieben. Diese Funktion wird durch ein systemweites Share Activity Sheet manifestiert, das beim Interagieren mit der Schaltfläche "Teilen" angezeigt wird.

Eine umfassende Auflistung aller integrierten Freigabeoptionen finden Sie unter UIActivity.ActivityType. Entwickler können bestimmte Freigabeoptionen ausschließen, wenn sie diese für ihre Anwendung ungeeignet halten.

Wie man Daten teilt

Die Aufmerksamkeit sollte auf Folgendes gerichtet werden:

  • Die Art der zu teilenden Daten.

  • Die Einbeziehung benutzerdefinierter Aktivitäten.

  • Der Ausschluss bestimmter Aktivitätstypen.

Das Teilen wird durch die Instanziierung eines UIActivityViewController ermöglicht, an den die für das Teilen vorgesehenen Elemente übergeben werden. Dies wird durch Aufrufen von:

$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:

Entwickler sollten den UIActivityViewController auf die Aktivitäten und benutzerdefinierten Aktivitäten überprüfen, mit denen er initialisiert wird, sowie auf eventuell angegebene excludedActivityTypes.

Wie man Daten empfängt

Folgende Aspekte sind entscheidend beim Empfangen von Daten:

  • Die Deklaration von benutzerdefinierten Dokumenttypen.

  • Die Spezifikation der Dokumenttypen, die die App öffnen kann.

  • Die Überprüfung der Integrität der empfangenen Daten.

Ohne Zugriff auf den Quellcode kann man dennoch das Info.plist auf Schlüssel wie UTExportedTypeDeclarations, UTImportedTypeDeclarations und CFBundleDocumentTypes überprüfen, um die Arten von Dokumenten zu verstehen, die eine App verarbeiten und deklarieren kann.

Eine prägnante Anleitung zu diesen Schlüsseln ist auf Stackoverflow verfügbar, die die Bedeutung der Definition und des Imports von UTIs für die systemweite Erkennung und die Zuordnung von Dokumenttypen mit Ihrer App für die Integration im Dialogfeld "Öffnen mit" hervorhebt.

Dynamischer Testansatz

Um Aktivitäten zu senden kann man Folgendes tun:

  • In die Methode init(activityItems:applicationActivities:) einhaken, um die geteilten Elemente und Aktivitäten zu erfassen.

  • Ausgeschlossene Aktivitäten identifizieren, indem man auf die Eigenschaft excludedActivityTypes zugreift.

Für das Empfangen von Elementen sind folgende Schritte erforderlich:

  • Eine Datei mit der App von einer anderen Quelle (z. B. AirDrop, E-Mail) teilen, die den Dialog "Mit ... öffnen" aufruft.

  • application:openURL:options: und andere während der statischen Analyse identifizierte Methoden abfangen, um die Reaktion der App zu beobachten.

  • Fehlerhafte Dateien oder Fuzzing-Techniken verwenden, um die Robustheit der App zu bewerten.

Referenzen

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated