iOS UIActivity Sharing

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

UIActivity Sharing Simplified

Od iOS 6 pa nadalje, aplikacije trećih strana su omogućene da dele podatke kao što su tekst, URL-ovi ili slike koristeći mehanizme poput AirDrop-a, kako je navedeno u Apple-ovom Inter-App Communication guide. Ova funkcija se manifestuje kroz sistemski share activity sheet koji se pojavljuje prilikom interakcije sa dugmetom "Share".

Sveobuhvatna enumeracija svih ugrađenih opcija deljenja dostupna je na UIActivity.ActivityType. Programeri mogu odlučiti da isključe određene opcije deljenja ako smatraju da nisu prikladne za njihovu aplikaciju.

Kako deliti podatke

Pažnja treba biti usmerena na:

  • Prirodu podataka koji se dele.
  • Uključivanje prilagođenih aktivnosti.
  • Isključivanje određenih tipova aktivnosti.

Deljenje se olakšava instanciranjem UIActivityViewController, kojem se prosleđuju stavke namenjene deljenju. To se postiže pozivanjem:

bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:

Developeri bi trebali pažljivo pregledati UIActivityViewController za aktivnosti i prilagođene aktivnosti sa kojima je inicijalizovan, kao i sve navedene excludedActivityTypes.

Kako primiti podatke

Sledeći aspekti su ključni prilikom primanja podataka:

  • Deklaracija prilagođenih tipova dokumenata.
  • Specifikacija tipova dokumenata koje aplikacija može otvoriti.
  • Verifikacija integriteta primljenih podataka.

Bez pristupa izvornoj kodu, može se pregledati Info.plist za ključeve kao što su UTExportedTypeDeclarations, UTImportedTypeDeclarations, i CFBundleDocumentTypes kako bi se razumele vrste dokumenata koje aplikacija može obraditi i deklarisati.

Kratak vodič o ovim ključevima je dostupan na Stackoverflow, naglašavajući važnost definisanja i uvoza UTI za sistemsko prepoznavanje i povezivanje tipova dokumenata sa vašom aplikacijom za integraciju u dijalogu "Otvoriti sa...".

Pristup dinamičkom testiranju

Da bi se testirale aktivnosti slanja, može se:

  • Hook-ovati u init(activityItems:applicationActivities:) metodu da bi se uhvatili stavke i aktivnosti koje se dele.
  • Identifikovati isključene aktivnosti presretanjem excludedActivityTypes svojstva.

Za primanje stavki, to uključuje:

  • Deljenje datoteke sa aplikacijom iz drugog izvora (npr. AirDrop, email) koja pokreće dijalog "Otvoriti sa...".
  • Hook-ovanje application:openURL:options: među drugim metodama identifikovanim tokom statičke analize da bi se posmatrao odgovor aplikacije.
  • Korišćenje neispravnih datoteka ili fuzzing tehnika za procenu otpornosti aplikacije.

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks