mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
56 lines
3.5 KiB
Markdown
56 lines
3.5 KiB
Markdown
# iOS UIActivity Sharing
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
# UIActivity Sharing Vereenvoudig
|
|
|
|
Vanaf iOS 6 het derdeparty toepassings in staat gestel om **data** soos teks, URL's of beelde te **deel** deur middel van meganismes soos AirDrop, soos uiteengesit in Apple se [Inter-App Communication guide](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Hierdie funksie manifesteer deur 'n stelselswye _deel aktiwiteit bladsy_ wat verskyn wanneer daar met die "Deel" knoppie geinteraksie word.
|
|
|
|
'n Omvattende opsomming van al die ingeboude deel opsies is beskikbaar by [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Ontwikkelaars kan kies om spesifieke deel opsies uit te sluit as hulle dit onvanpas vir hul toepassing ag.
|
|
|
|
## **Hoe om Data te Deel**
|
|
|
|
Aandag moet gegee word aan:
|
|
|
|
- Die aard van die data wat gedeel word.
|
|
- Die insluiting van pasgemaakte aktiwiteite.
|
|
- Die uitsluiting van sekere aktiwiteit tipes.
|
|
|
|
Deel word gefasiliteer deur die instansie van 'n `UIActivityViewController`, waaraan die items wat bedoel is om gedeel te word, oorgedra word. Dit word bereik deur te bel:
|
|
```bash
|
|
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
|
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
|
```
|
|
Ontwikkelaars moet die `UIActivityViewController` noukeurig ondersoek vir die aktiwiteite en persoonlike aktiwiteite waarmee dit geïnitialiseer is, sowel as enige gespesifiseerde `excludedActivityTypes`.
|
|
|
|
## **Hoe om Data te Ontvang**
|
|
|
|
Die volgende aspekte is van kardinale belang wanneer data ontvang word:
|
|
|
|
- Die verklaring van **persoonlike dokumenttipes**.
|
|
- Die spesifikasie van **dokumenttipes wat die app kan oopmaak**.
|
|
- Die verifikasie van die **integriteit van die ontvangde data**.
|
|
|
|
Sonder toegang tot die bronkode, kan 'n mens steeds die `Info.plist` ondersoek vir sleutels soos `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, en `CFBundleDocumentTypes` om die tipes dokumente wat 'n app kan hanteer en verklaar, te verstaan.
|
|
|
|
'n Bondige gids oor hierdie sleutels is beskikbaar op [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), wat die belangrikheid van die definisie en invoer van UTI's vir sistemiese erkenning en die assosiasie van dokumenttipes met jou app vir integrasie in die "Open Met" dialoog beklemtoon.
|
|
|
|
## Dinamiese Toetsbenadering
|
|
|
|
Om **aktiwiteite te stuur** kan 'n mens:
|
|
|
|
- In die `init(activityItems:applicationActivities:)` metode inhaak om die items en aktiwiteite wat gedeel word, vas te vang.
|
|
- Uitsluitingsaktiwiteite identifiseer deur die `excludedActivityTypes` eienskap te onderskep.
|
|
|
|
Vir **items te ontvang**, behels dit:
|
|
|
|
- 'n Lêer met die app van 'n ander bron (bv. AirDrop, e-pos) te deel wat die "Open met..." dialoog uitlok.
|
|
- In te haak by `application:openURL:options:` onder andere metodes wat tydens statiese analise geïdentifiseer is om die app se reaksie te observeer.
|
|
- Gebruik te maak van verkeerd geformateerde lêers of fuzzing tegnieke om die app se robuustheid te evalueer.
|
|
|
|
## Verwysings
|
|
|
|
- [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)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|