hacktricks/mobile-pentesting/ios-pentesting/ios-uiactivity-sharing.md

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
{% endhint %}

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
{% endhint %}