hacktricks/mobile-pentesting/ios-pentesting/ios-uiactivity-sharing.md
2024-02-11 02:07:06 +00:00

5.7 KiB

iOS UIActivity-deling

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Vereenvoudigde UIActivity-deling

Vanaf iOS 6 is derde-party-toepassings in staat gestel om data te deel, soos teks, URL's of afbeeldings, deur gebruik te maak van meganismes soos AirDrop, soos uiteengesit in Apple se Inter-App Communication-gids. Hierdie funksie manifesteer deur middel van 'n stelselwye deelaktiwiteitsblad wat na vore kom wanneer die "Deel" knoppie geaktiveer word.

'n Omvattende opsomming van al die ingeboude deelopsies is beskikbaar by UIActivity.ActivityType. Ontwikkelaars kan opsioneel spesifieke deelopsies uitsluit as hulle dit ongeskik ag vir hul toepassing.

Hoe om Data te Deel

Aandag moet gegee word aan:

  • Die aard van die gedeelde data.
  • Die insluiting van aangepaste aktiwiteite.
  • Die uitsluiting van sekere aktiwiteitstipes.

Deling word fasiliteer deur die instansiasie van 'n UIActivityViewController, waarin die items wat bedoel is om gedeel te word, oorgedra word. Dit word bereik deur die volgende te roep:

$ 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 aangepaste aktiwiteite waarmee dit geïnisialiseer is, sowel as enige gespesifiseerde excludedActivityTypes.

Hoe om Data te Ontvang

Die volgende aspekte is van kritieke 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 ontvangste data.

Sonder toegang tot die bronkode kan 'n persoon steeds die Info.plist ondersoek vir sleutels soos UTExportedTypeDeclarations, UTImportedTypeDeclarations, en CFBundleDocumentTypes om te verstaan watter tipes dokumente 'n app kan hanteer en verklaar.

'n Bondige gids oor hierdie sleutels is beskikbaar op Stackoverflow, wat die belangrikheid beklemtoon van die definieer en invoer van UTIs vir stelselwye herkenning en die assosiasie van dokumenttipes met jou app vir integrasie in die "Open met" dialoog.

Dinamiese Toetsbenadering

Om aktiwiteite te toets wat gestuur word, kan 'n persoon:

  • Inhaak op die init(activityItems:applicationActivities:) metode om die items en aktiwiteite wat gedeel word, vas te vang.
  • Uitgeslote aktiwiteite identifiseer deur die excludedActivityTypes eienskap te onderskep.

Vir die ontvang van items, behels dit:

  • Om 'n lêer met die app te deel vanaf 'n ander bron (bv. AirDrop, e-pos) wat die "Open met..." dialoog uitlok.
  • Om application:openURL:options: te onderskep, tesame met ander metodes wat geïdentifiseer is tydens statiese analise, om die app se reaksie waar te neem.
  • Om gebrekkige lêers of fuzzing-tegnieke te gebruik om die robuustheid van die app te evalueer.

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: