iOS UIActivity Sharing
Reading time: 3 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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. 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. 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:
$ 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, 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
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.