Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
Il s'agit d'un résumé des informations connexes provenant de [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/) ## Informations de base Les schémas d'URL personnalisés permettent aux applications de communiquer en utilisant un protocole personnalisé, comme détaillé dans la [Documentation du développeur Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ces schémas doivent être déclarés par l'application, qui gère ensuite les URL entrantes suivant ces schémas. Il est crucial de **valider tous les paramètres d'URL** et de **rejeter tout URL malformée** pour prévenir les attaques via ce vecteur. Un exemple est donné où l'URI `myapp://hostname?data=123876123` invoque une action spécifique de l'application. Une vulnérabilité notée était dans l'application mobile Skype, qui permettait des actions d'appel non autorisées via le protocole `skype://`. Les schémas enregistrés peuvent être trouvés dans le fichier `Info.plist` de l'application sous `CFBundleURLTypes`. Les applications malveillantes peuvent exploiter cela en réenregistrant des URIs pour intercepter des informations sensibles. ### Enregistrement des schémas de requête d'application À partir d'iOS 9.0, pour vérifier si une application est disponible, `canOpenURL:` nécessite de déclarer des schémas d'URL dans le fichier `Info.plist` sous `LSApplicationQueriesSchemes`. Cela limite les schémas qu'une application peut interroger à 50, renforçant la confidentialité en empêchant l'énumération des applications. ```xml LSApplicationQueriesSchemes url_scheme1 url_scheme2 ``` ### Testing de la Gestion et de la Validation des URL Les développeurs devraient inspecter des méthodes spécifiques dans le code source pour comprendre la construction et la validation du chemin des URL, telles que `application:didFinishLaunchingWithOptions:` et `application:openURL:options:`. Par exemple, Telegram utilise diverses méthodes pour ouvrir des URL : ```swift func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool { self.openUrl(url: url) return true } func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { self.openUrl(url: url) return true } func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { self.openUrl(url: url) return true } func application(_ application: UIApplication, handleOpen url: URL) -> Bool { self.openUrl(url: url) return true } ``` ### Tester les demandes d'URL vers d'autres applications Des méthodes telles que `openURL:options:completionHandler:` sont cruciales pour ouvrir des URL afin d'interagir avec d'autres applications. Identifier l'utilisation de telles méthodes dans le code source de l'application est essentiel pour comprendre les communications externes. ### Tester les méthodes obsolètes La gestion des méthodes obsolètes d'ouverture d'URL, telles que `application:handleOpenURL:` et `openURL:`, doit être identifiée et examinée pour ses implications en matière de sécurité. ### Fuzzing des schémas d'URL Le fuzzing des schémas d'URL peut identifier des bugs de corruption de mémoire. Des outils comme [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) peuvent automatiser ce processus en ouvrant des URL avec des charges utiles variables pour surveiller les plantages, comme illustré par la manipulation des URL dans l'application iGoat-Swift: ```bash $ frida -U SpringBoard -l ios-url-scheme-fuzzing.js [iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}") Watching for crashes from iGoat... No logs were moved. Opened URL: iGoat://?contactNumber=0&message=0 ``` ## Références * [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)! Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.