iOS Universal Links
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Univerzalni linkovi nude besprekorno preusmeravanje korisnicima otvarajući sadržaj direktno u aplikaciji, zaobilazeći potrebu za preusmeravanjem u Safariju. Ovi linkovi su jedinstveni i sigurni, jer ih druge aplikacije ne mogu preuzeti. To se osigurava hostovanjem apple-app-site-association
JSON datoteke u korenskom direktorijumu veb sajta, uspostavljajući verifikovanu vezu između veb sajta i aplikacije. U slučajevima kada aplikacija nije instalirana, Safari će preuzeti kontrolu i usmeriti korisnika na veb stranicu, održavajući prisustvo aplikacije.
Za testere penetracije, apple-app-site-association
datoteka je od posebnog interesa jer može otkriti osetljive putanje, potencijalno uključujući one koje se odnose na neobjavljene funkcije.
Programeri omogućavaju univerzalne linkove konfigurišući Associated Domains u Xcode-ovom tabu Capabilities ili pregledajući .entitlements
datoteku. Svaka domena je prefiksovana sa applinks:
. Na primer, konfiguracija Telegram-a može izgledati ovako:
Za sveobuhvatnije uvide, pogledajte arhiviranu Apple Developer dokumentaciju.
Ako radite sa kompajliranom aplikacijom, prava mogu biti izvučena kao što je opisano u ovom vodiču.
Fajl apple-app-site-association
treba preuzeti sa servera koristeći domene navedene u pravima. Osigurajte da je fajl dostupan putem HTTPS direktno na https://<domain>/apple-app-site-association
. Alati poput Apple App Site Association (AASA) Validator mogu pomoći u ovom procesu.
Aplikacija mora implementirati specifične metode za pravilno rukovanje univerzalnim linkovima. Primarna metoda koju treba tražiti je application:continueUserActivity:restorationHandler:
. Ključno je da shema URL-ova koji se obrađuju bude HTTP ili HTTPS, jer drugi neće biti podržani.
Kada univerzalni link otvori aplikaciju, NSUserActivity
objekat se prosleđuje aplikaciji sa URL-om. Pre obrade ovog URL-a, važno je validirati i sanitizovati ga kako bi se sprečili sigurnosni rizici. Evo primera u Swift-u koji ilustruje proces:
URLs treba pažljivo analizirati i validirati, posebno ako uključuju parametre, kako bi se zaštitili od potencijalnog spoofinga ili neispravnih podataka. NSURLComponents
API je koristan za ovu svrhu, kao što je prikazano u nastavku:
Kroz pažljivu konfiguraciju i validaciju, programeri mogu osigurati da univerzalni linkovi poboljšaju korisničko iskustvo, dok održavaju standarde sigurnosti i privatnosti.
GetUniversal.link: Pomaže u pojednostavljivanju testiranja i upravljanja univerzalnim linkovima vaše aplikacije i AASA datotekom. Jednostavno unesite svoju domenu da biste proverili integritet AASA datoteke ili koristite prilagođenu kontrolnu tablu za lako testiranje ponašanja linkova. Ovaj alat vam takođe pomaže da odredite kada će Apple sledeći put indeksirati vašu AASA datoteku.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)