iOS UIActivity Sharing
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
UIActivity Sharing Semplificato
A partire da iOS 6, le applicazioni di terze parti possono condividere dati come testo, URL o immagini utilizzando meccanismi come AirDrop, come descritto nella guida alla comunicazione tra app di Apple. Questa funzionalitĂ si manifesta attraverso un foglio di attivitĂ di condivisione a livello di sistema che appare interagendo con il pulsante âCondividiâ.
Un elenco completo di tutte le opzioni di condivisione integrate è disponibile in UIActivity.ActivityType. Gli sviluppatori possono scegliere di escludere specifiche opzioni di condivisione se le ritengono inadeguate per la loro applicazione.
Come Condividere Dati
Lâattenzione dovrebbe essere rivolta a:
- La natura dei dati condivisi.
- Lâinclusione di attivitĂ personalizzate.
- Lâesclusione di determinati tipi di attivitĂ .
La condivisione è facilitata attraverso lâistanza di un UIActivityViewController, a cui vengono passati gli elementi destinati alla condivisione. Questo si ottiene chiamando:
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
Gli sviluppatori dovrebbero esaminare il UIActivityViewController per le attività e le attività personalizzate con cui è inizializzato, cosÏ come per eventuali excludedActivityTypes specificati.
Come Ricevere Dati
I seguenti aspetti sono cruciali quando si ricevono dati:
- La dichiarazione di tipi di documento personalizzati.
- La specifica di tipi di documento che lâapp può aprire.
- La verifica dellâintegritĂ dei dati ricevuti.
Senza accesso al codice sorgente, è possibile comunque ispezionare il Info.plist per chiavi come UTExportedTypeDeclarations, UTImportedTypeDeclarations e CFBundleDocumentTypes per comprendere i tipi di documenti che unâapp può gestire e dichiarare.
Una guida concisa su queste chiavi è disponibile su Stackoverflow, evidenziando lâimportanza di definire e importare UTI per il riconoscimento a livello di sistema e associare i tipi di documento con la tua app per lâintegrazione nella finestra di dialogo âApri conâ.
Approccio di Testing Dinamico
Per testare lâinvio di attivitĂ , si potrebbe:
- Intercettare il metodo
init(activityItems:applicationActivities:)per catturare gli elementi e le attivitĂ condivise. - Identificare le attivitĂ escluse intercettando la proprietĂ
excludedActivityTypes.
Per ricevere elementi, implica:
- Condividere un file con lâapp da unâaltra fonte (ad es., AirDrop, email) che provoca la finestra di dialogo âApri conâŚâ.
- Intercettare
application:openURL:options:tra altri metodi identificati durante lâanalisi statica per osservare la risposta dellâapp. - Utilizzare file malformati o tecniche di fuzzing per valutare la robustezza dellâapp.
Riferimenti
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

