Deeplinks/Universal links vulns (iOS)
L'exploitation des deeplinks sous iOS est globalement semblable à l'exploitation des deeplinks sous Android.
Reconnaissance
Statique
Les Universal links utilisés par les applications iOS peuvent être retrouvées dans le fichier Info.plist en recherchant les éléments suivants:
CFBundleUrlTypes
LSApplicationQueriesSchemes
Ainsi que dans les entitlements en recherchant les domaines associés:
$ ipsw macho info -e MY_BINARY
key: com.apple.developper.associated-domains
Rechercher ensuite des cas d'usage:
$ string MY_BINARY | grep "://"
$ strings MY_BINARY | grep -E '^[a-zA-Z][a-zA-Z0-9+.-]{0,29}://[a-zA-Z0-9./?&=_%-]+' | grep -vE '^https?://'
Rechercher la méthode openURL Dans le binaire Mach-O avec Ghidra (Barre "Filter" dans la fenêtre "Symbol Tree")
Rechercher des strings hardcodées potentiellement associés aux fonctions qui ouvrent des liens universels pour aider à la compréhension (Search > For strings...)
Dynamique
Tracer la méthode openURL avec Frida:
$ frida-trace -U -m "*[* *openURL*]" -p [ProcessID]
Exploitation
Lancer un lien universel via SSH:
$ uiopen scheme://target_app
Mis à jour