6.1 KiB
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud github repos.
Questa è una sintesi delle informazioni correlate da https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
Informazioni di base
I custom URL schemes consentono alle app di comunicare utilizzando un protocollo personalizzato, come descritto nella Documentazione per sviluppatori Apple. Questi schemi devono essere dichiarati dall'app, che gestisce quindi gli URL in ingresso seguendo tali schemi. È fondamentale validare tutti i parametri URL e scartare eventuali URL non validi per prevenire attacchi attraverso questo vettore.
Viene fornito un esempio in cui l'URI myapp://hostname?data=123876123
invoca una specifica azione dell'applicazione. È stata riscontrata una vulnerabilità nell'app Skype Mobile, che consentiva azioni di chiamata non autorizzate tramite il protocollo skype://
. Gli schemi registrati possono essere trovati nell'Info.plist
dell'app sotto CFBundleURLTypes
. Le applicazioni malevole possono sfruttare ciò registrando nuovamente gli URI per intercettare informazioni sensibili.
Registrazione degli Application Query Schemes
A partire da iOS 9.0, per verificare se un'app è disponibile, canOpenURL:
richiede la dichiarazione degli URL schemes nell'Info.plist
sotto LSApplicationQueriesSchemes
. Ciò limita gli schemi che un'app può interrogare a 50, migliorando la privacy impedendo l'enumerazione delle app.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>url_scheme1</string>
<string>url_scheme2</string>
</array>
Testare la gestione e la validazione degli URL
Gli sviluppatori dovrebbero ispezionare metodi specifici nel codice sorgente per comprendere la costruzione e la validazione del percorso dell'URL, come application:didFinishLaunchingWithOptions:
e application:openURL:options:
. Ad esempio, Telegram utilizza vari metodi per aprire gli URL:
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
}
Test delle richieste URL verso altre app
Metodi come openURL:options:completionHandler:
sono fondamentali per aprire URL e interagire con altre app. Identificare l'uso di tali metodi nel codice sorgente dell'app è essenziale per comprendere le comunicazioni esterne.
Test dei metodi deprecati
I metodi deprecati che gestiscono l'apertura degli URL, come application:handleOpenURL:
e openURL:
, devono essere identificati e valutati per le implicazioni sulla sicurezza.
Fuzzing degli URL Scheme
Il fuzzing degli URL Scheme può identificare bug di corruzione della memoria. Strumenti come Frida possono automatizzare questo processo aprendo URL con payload variabili per monitorare eventuali crash, come esemplificato dalla manipolazione degli URL nell'app iGoat-Swift:
$ 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
Riferimenti
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repository di github.