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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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:
$ 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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.