5.9 KiB
Partage UIActivity iOS
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!
Autres façons de soutenir HackTricks :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT !
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez La famille PEASS, notre collection exclusive de NFT
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-nous sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux HackTricks et HackTricks Cloud dépôts GitHub.
Partage UIActivity Simplifié
À partir d'iOS 6, les applications tierces peuvent partager des données telles que du texte, des URL ou des images en utilisant des mécanismes tels qu'AirDrop, comme décrit dans le guide de communication inter-applications d'Apple. Cette fonctionnalité se manifeste à travers une feuille d'activité de partage à l'échelle du système qui apparaît lors de l'interaction avec le bouton "Partager".
Une énumération complète de toutes les options de partage intégrées est disponible sur UIActivity.ActivityType. Les développeurs peuvent choisir d'exclure des options de partage spécifiques s'ils les jugent inadaptées pour leur application.
Comment Partager des Données
L'attention doit être portée sur :
- La nature des données partagées.
- L'inclusion d'activités personnalisées.
- L'exclusion de certains types d'activités.
Le partage est facilité par l'instanciation d'un UIActivityViewController
, auquel les éléments destinés au partage sont transmis. Cela est réalisé en appelant :
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
Les développeurs doivent examiner l'UIActivityViewController
pour les activités et les activités personnalisées avec lesquelles il est initialisé, ainsi que les excludedActivityTypes
spécifiés.
Comment Recevoir des Données
Les aspects suivants sont cruciaux lors de la réception de données :
- La déclaration des types de documents personnalisés.
- La spécification des types de documents que l'application peut ouvrir.
- La vérification de l'intégrité des données reçues.
Sans accès au code source, on peut toujours inspecter l'Info.plist
pour des clés comme UTExportedTypeDeclarations
, UTImportedTypeDeclarations
, et CFBundleDocumentTypes
pour comprendre les types de documents qu'une application peut gérer et déclarer.
Un guide succinct sur ces clés est disponible sur Stackoverflow, mettant en avant l'importance de définir et importer des UTIs pour une reconnaissance à l'échelle du système et associer les types de documents avec votre application pour une intégration dans le dialogue "Ouvrir avec".
Approche de Test Dynamique
Pour tester les activités d'envoi, on pourrait :
- Accrocher la méthode
init(activityItems:applicationActivities:)
pour capturer les éléments et activités partagés. - Identifier les activités exclues en interceptant la propriété
excludedActivityTypes
.
Pour les éléments reçus, cela implique :
- Partager un fichier avec l'application depuis une autre source (par exemple, AirDrop, email) qui déclenche le dialogue "Ouvrir avec...".
- Accrocher
application:openURL:options:
parmi d'autres méthodes identifiées lors de l'analyse statique pour observer la réponse de l'application. - Utiliser des fichiers malformés ou des techniques de fuzzing pour évaluer la robustesse de l'application.
Références
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres façons de soutenir HackTricks :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT!
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux HackTricks et HackTricks Cloud github repos.