iOS UIActivity Sharing

iOS UIActivity Sharing

Support 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 Vodiču za međusobnu komunikaciju aplikacija. Ova funkcija se manifestuje kroz sistemski sheet za deljenje aktivnosti koji se pojavljuje prilikom interakcije sa dugmetom "Podeli".

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 koje se nameravaju deliti. To se postiže pozivanjem:

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

Developeri bi trebali pažljivo ispitati 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 još uvek ispitati 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 dostupan je 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".

Dinamički pristup testiranju

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

  • Uključiti u metodu init(activityItems:applicationActivities:) kako bi se uhvatili stavke i aktivnosti koje se dele.

  • Identifikovati isključene aktivnosti presretanjem svojstva excludedActivityTypes.

Za primanje stavki, to uključuje:

  • Deljenje datoteke sa aplikacijom iz drugog izvora (npr. AirDrop, email) koja pokreće dijalog "Otvoriti sa...".

  • Uključivanje application:openURL:options: među drugim metodama identifikovanim tokom statičke analize kako bi se posmatrao odgovor aplikacije.

  • Korišćenje neispravnih datoteka ili fuzzing tehnika za procenu otpornosti aplikacije.

Reference

Support HackTricks

Last updated