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)
I link universali offrono un'esperienza di reindirizzamento senza soluzione di continuità agli utenti aprendo direttamente il contenuto nell'app, bypassando la necessità di un reindirizzamento su Safari. Questi link sono unici e sicuri, poiché non possono essere rivendicati da altre app. Questo è garantito ospitando un file JSON apple-app-site-association
nella directory radice del sito web, stabilendo un collegamento verificabile tra il sito web e l'app. Nei casi in cui l'app non sia installata, Safari prenderà il controllo e dirigerà l'utente alla pagina web, mantenendo la presenza dell'app.
Per i tester di penetrazione, il file apple-app-site-association
è di particolare interesse poiché potrebbe rivelare percorsi sensibili, potenzialmente inclusi quelli relativi a funzionalità non rilasciate.
Gli sviluppatori abilitano i link universali configurando i Domini Associati nella scheda Capacità di Xcode o ispezionando il file .entitlements
. Ogni dominio è preceduto da applinks:
. Ad esempio, la configurazione di Telegram potrebbe apparire come segue:
Per ulteriori informazioni dettagliate, fare riferimento alla documentazione archiviata per sviluppatori Apple.
Se si lavora con un'applicazione compilata, i diritti possono essere estratti come descritto in questa guida.
Il file apple-app-site-association
deve essere recuperato dal server utilizzando i domini specificati nei diritti. Assicurati che il file sia accessibile tramite HTTPS direttamente a https://<domain>/apple-app-site-association
. Strumenti come il Validator Apple App Site Association (AASA) possono aiutare in questo processo.
L'app deve implementare metodi specifici per gestire correttamente i link universali. Il metodo principale da cercare è application:continueUserActivity:restorationHandler:
. È fondamentale che lo schema degli URL gestiti sia HTTP o HTTPS, poiché altri non saranno supportati.
Quando un link universale apre un'app, un oggetto NSUserActivity
viene passato all'app con l'URL. Prima di elaborare questo URL, è essenziale convalidarlo e sanificarlo per prevenire rischi per la sicurezza. Ecco un esempio in Swift che dimostra il processo:
URLs devono essere analizzati e convalidati con attenzione, specialmente se includono parametri, per proteggere contro potenziali spoofing o dati malformati. L'API NSURLComponents
è utile a questo scopo, come dimostrato di seguito:
Attraverso una configurazione e una validazione diligenti, gli sviluppatori possono garantire che i link universali migliorino l'esperienza dell'utente mantenendo standard di sicurezza e privacy.
GetUniversal.link: Aiuta a semplificare il testing e la gestione dei Link Universali della tua app e del file AASA. Basta inserire il tuo dominio per verificare l'integrità del file AASA o utilizzare il dashboard personalizzato per testare facilmente il comportamento dei link. Questo strumento ti aiuta anche a determinare quando Apple indicizzerà nuovamente il tuo file AASA.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)