5.5 KiB
iOS UIActivity Sharing
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
UIActivity Sharing Simplified
Vanaf iOS 6 het derdeparty toepassings toegelaat 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.
How to Share Data
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 is gefasiliteer deur die instansie van 'n UIActivityViewController
, waaraan die items wat bedoel is om te deel, oorgedra word. Dit word bereik deur te bel:
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
Developers should scrutinize the UIActivityViewController
for the activities and custom activities it's initialized with, as well as any specified excludedActivityTypes
.
Hoe om Data te Ontvang
Die volgende aspekte is van kardinale belang wanneer data ontvang word:
- Die verklaring van aangepaste 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
inspekteer 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 stelselswye erkenning en die assosiasie van dokumenttipes met jou app vir integrasie in die "Open With" dialoog beklemtoon.
Dinamiese Toetsbenadering
Om sending aktiwiteite te toets, 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 ontvangsitems, behels dit:
- 'n Lêer met die app van 'n ander bron (bv. AirDrop, e-pos) te deel wat die "Open with..." dialoog uitlok.
application:openURL:options:
onder andere metodes wat tydens statiese analise geïdentifiseer is, in te haak om die app se reaksie te observeer.- Swak lêers of fuzzing tegnieke te gebruik om die app se robuustheid te evalueer.
Verwysings
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.