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

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:

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, 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