iOS Custom URI Handlers / Deeplinks / Custom Schemes
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aangepaste URL skemas stel toepassings in staat om te kommunikeer met 'n aangepaste protokol, soos in die Apple Developer Documentation uiteengesit. Hierdie skemas moet deur die toepassing verklaar word, wat dan inkomende URL's volgens daardie skemas hanteer. Dit is van kardinale belang om alle URL parameters te valideer en enige verkeerd geformateerde URL's te verwerp om aanvalle deur hierdie vektor te voorkom.
'n Voorbeeld word gegee waar die URI myapp://hostname?data=123876123
'n spesifieke toepassingsaksie aanroep. 'n Genoemde kwesbaarheid was in die Skype Mobile toepassing, wat ongereguleerde oproepaksies via die skype://
protokol toegelaat het. Die geregistreerde skemas kan in die toepassing se Info.plist
onder CFBundleURLTypes
gevind word. Kwaadwillige toepassings kan dit benut deur URI's weer te registreer om sensitiewe inligting te onderskep.
Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis canOpenURL:
dat URL skemas in die Info.plist
onder LSApplicationQueriesSchemes
verklaar word. Dit beperk die skemas wat 'n toepassing kan navraag doen tot 50, wat privaatheid verbeter deur toepassingse enumerasie te voorkom.
Ontwikkelaars moet spesifieke metodes in die bronkode ondersoek om URL-padkonstruksie en -validasie te verstaan, soos application:didFinishLaunchingWithOptions:
en application:openURL:options:
. Byvoorbeeld, Telegram gebruik verskeie metodes om URL's te open:
Metodes soos openURL:options:completionHandler:
is van kardinale belang om URL's te open om met ander apps te kommunikeer. Die identifisering van die gebruik van sulke metodes in die app se bronne kode is sleutels tot die begrip van eksterne kommunikasie.
Verouderde metodes wat URL-opening hanteer, soos application:handleOpenURL:
en openURL:
, moet geïdentifiseer en hersien word vir sekuriteitsimplikasies.
Fuzzing URL skemas kan geheue korrupsie foute identifiseer. Gereedskap soos Frida kan hierdie proses outomatiseer deur URL's met verskillende payloads te open om vir crashes te monitor, soos geïllustreer deur die manipulasie van URL's in die iGoat-Swift app:
Volgens hierdie pos kan kwaadwillige toepassings ander toepassings se aangepaste skemas registreer, dan kan die kwaadwillige toepassing 'n blaaskas oopmaak wat al die koekies van die Safari-toepassing het met ASWebAuthenticationSession.
Met die blaaskas kan die kwaadwillige toepassing 'n webblad wat deur 'n aanvaller beheer word, laai en TCC sal die mobiele gebruiker vra om toestemming te gee om daardie toepassing oop te maak. Dan kan die kwaadwillige webblad na 'n slagofferbladsy herlei, byvoorbeeld 'n OAuth-stroom met die parameter prompt=none
. As die gebruiker reeds ingelog was in die OAuth-stroom, sal die OAuth-stroom die geheim terugstuur na die slagoffer-toepassing met behulp van die aangepaste skema van die slagoffer-toepassing.
E however, omdat die kwaadwillige toepassing dit ook geregistreer het en omdat die gebruikte blaaskas binne die kwaadwillige toepassing is, sal die aangepaste skema in hierdie geval hanteer word deur die kwaadwillige toepassing wat in staat sal wees om die OAuth-token te steel.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)