> For the complete documentation index, see [llms.txt](https://blog.s1rn3tz.ovh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.s1rn3tz.ovh/pentest-mobile/ios/deeplinks-universal-links-vulns-ios.md).

# Deeplinks/Universal links vulns (iOS)

L'exploitation des deeplinks sous iOS est globalement semblable à l'exploitation des [deeplinks sous Android](/pentest-mobile/android/deeplinks-vulns.md).

## 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`
