Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
Hierdie is 'n opsomming van die verwante inligting vanaf [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
## Basiese Inligting
Aangepaste URL-skemas stel programme in staat om te kommunikeer deur middel van 'n aangepaste protokol, soos beskryf in die [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Hierdie skemas moet deur die toepassing verklaar word, wat dan inkomende URL's volgens daardie skemas hanteer. Dit is noodsaaklik om **alle URL-parameters te valideer** en **enige verkeerd geformuleerde URL's te verwerp** om aanvalle deur hierdie vektor te voorkom.
'n Voorbeeld word gegee waar die URI `myapp://hostname?data=123876123` 'n spesifieke toepassingsaksie aanroep. 'n Opmerklike kwesbaarheid was in die Skype Mobile-toep, wat ongemagtigde oproepaksies via die `skype://`-protokol toegelaat het. Die geregistreerde skemas kan gevind word in die toep se `Info.plist` onder `CFBundleURLTypes`. Kwaadwillige toepassings kan hiervan misbruik maak deur URI's te herregistreer om sensitiewe inligting te onderskep.
### Registrasie van Toepassingsnavraagskemas
Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis `canOpenURL:` dat URL-skemas verklaar word in die `Info.plist` onder `LSApplicationQueriesSchemes`. Dit beperk die skemas wat 'n toepassing kan ondersoek tot 50, wat privaatheid verbeter deur toepassingsopnoeming te voorkom.
```xml
LSApplicationQueriesSchemes
url_scheme1
url_scheme2
```
### Toetsing van URL-hantering en validering
Ontwikkelaars moet spesifieke metodes in die bronkode ondersoek om URL-padkonstruksie en validering te verstaan, soos `application:didFinishLaunchingWithOptions:` en `application:openURL:options:`. Byvoorbeeld, Telegram maak gebruik van verskeie metodes om URL's te open:
```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
}
```
### Toetsing van URL-aanvragen aan andere apps
Metodes soos `openURL:options:completionHandler:` is noodsaaklik vir die oopmaak van URL's om met ander apps te kommunikeer. Die identifisering van die gebruik van sulke metodes in die bronkode van die app is sleutel tot die verstaan van eksterne kommunikasie.
### Toetsing vir verouderde metodes
Verouderde metodes wat URL-oopmakings hanteer, soos `application:handleOpenURL:` en `openURL:`, moet geïdentifiseer en nagegaan word vir sekuriteitsimplikasies.
### Fuzzing van URL-skemas
Fuzzing van URL-skemas kan geheueversteuringsfoute identifiseer. Hulpmiddels soos [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) kan hierdie proses outomatiseer deur URL's met verskillende ladinge oop te maak om te monitor vir ongelukke, soos geïllustreer deur die manipulasie van URL's in die iGoat-Swift-app:
```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
```
## Verwysings
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.