mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
92 lines
6.1 KiB
Markdown
92 lines
6.1 KiB
Markdown
<details>
|
|
|
|
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Altri modi per supportare HackTricks:
|
|
|
|
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
|
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
|
|
Questa è una sintesi delle informazioni correlate da [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](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](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). 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.
|
|
```xml
|
|
<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:
|
|
```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
|
|
}
|
|
```
|
|
### 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](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) possono automatizzare questo processo aprendo URL con payload variabili per monitorare eventuali crash, come esemplificato dalla manipolazione degli URL nell'app 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
|
|
```
|
|
## Riferimenti
|
|
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Altri modi per supportare HackTricks:
|
|
|
|
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
|
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di github.
|
|
|
|
</details>
|