mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 17:28:13 +00:00
78 lines
5.8 KiB
Markdown
78 lines
5.8 KiB
Markdown
# Condivisione UIActivity
|
|
|
|
<details>
|
|
|
|
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Altri modi per supportare HackTricks:
|
|
|
|
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
|
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
|
|
# Condivisione UIActivity semplificata
|
|
|
|
A partire da iOS 6, le applicazioni di terze parti sono abilitate a **condividere dati** come testo, URL o immagini utilizzando meccanismi come AirDrop, come descritto nella [guida alla comunicazione tra app](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) di Apple. Questa funzionalità si manifesta attraverso un _foglio di attività di condivisione_ a livello di sistema che appare quando si interagisce con il pulsante "Condividi".
|
|
|
|
Un elenco completo di tutte le opzioni di condivisione integrate è disponibile su [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Gli sviluppatori possono scegliere di escludere specifiche opzioni di condivisione se le ritengono inadatte per la propria applicazione.
|
|
|
|
## **Come condividere dati**
|
|
|
|
L'attenzione dovrebbe essere rivolta a:
|
|
|
|
- La natura dei dati da condividere.
|
|
- L'inclusione di attività personalizzate.
|
|
- L'esclusione di determinati tipi di attività.
|
|
|
|
La condivisione avviene attraverso l'istanziazione di un `UIActivityViewController`, a cui vengono passati gli elementi destinati alla condivisione. Questo viene realizzato chiamando:
|
|
```bash
|
|
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
|
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
|
```
|
|
Gli sviluppatori dovrebbero esaminare attentamente `UIActivityViewController` per le attività e le attività personalizzate con cui è inizializzato, così come eventuali `excludedActivityTypes` specificati.
|
|
|
|
## **Come ricevere dati**
|
|
|
|
Gli aspetti seguenti sono cruciali quando si ricevono dati:
|
|
|
|
- La dichiarazione di **tipi di documenti personalizzati**.
|
|
- La specifica dei **tipi di documenti che l'app può aprire**.
|
|
- La verifica dell'**integrità dei dati ricevuti**.
|
|
|
|
Senza accesso al codice sorgente, è comunque possibile ispezionare `Info.plist` per chiavi come `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` e `CFBundleDocumentTypes` per capire i tipi di documenti che un'app può gestire e dichiarare.
|
|
|
|
Una guida sintetica su queste chiavi è disponibile su [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), evidenziando l'importanza di definire e importare UTI per il riconoscimento a livello di sistema e associare tipi di documenti all'app per l'integrazione nella finestra di dialogo "Apri con".
|
|
|
|
## Approccio di testing dinamico
|
|
|
|
Per testare le **attività di invio**, 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 quanto riguarda la **ricezione degli elementi**, comporta:
|
|
|
|
- Condividere un file con l'app da un'altra fonte (ad esempio, AirDrop, email) che richiama la finestra di dialogo "Apri con...".
|
|
- Intercettare `application:openURL:options:` tra gli 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
|
|
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Altri modi per supportare HackTricks:
|
|
|
|
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF**, controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
|
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|