hacktricks/mobile-pentesting/ios-pentesting/ios-universal-links.md
2024-02-11 02:07:06 +00:00

7.1 KiB

iOS Universele Skakels

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Inleiding

Universele skakels bied 'n naadlose omleidingservaring aan gebruikers deur inhoud direk in die app te open, sonder die nodigheid van Safari-omleiding. Hierdie skakels is uniek en veilig, aangesien dit nie deur ander apps geclaim kan word nie. Dit word verseker deur 'n apple-app-site-association JSON-lêer op die webwerf se hoofgids te hê, wat 'n verifieerbare skakel tussen die webwerf en die app vestig. In gevalle waar die app nie geïnstalleer is nie, sal Safari oorneem en die gebruiker na die webblad lei, terwyl die app teenwoordig bly.

Vir penetrasietoetsers is die apple-app-site-association-lêer van besondere belang, aangesien dit moontlik sensitiewe paaie kan onthul, moontlik insluitend paaie wat verband hou met onvrygestelde funksies.

Ontleding van die Verwante Domeine Toekenning

Ontwikkelaars aktiveer Universele Skakels deur die Verwante Domeine te konfigureer in Xcode se Vermoëns-tabblad of deur die .entitlements-lêer te ondersoek. Elke domein word voorafgegaan deur applinks:. Byvoorbeeld, Telegram se konfigurasie kan soos volg lyk:

<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:telegram.me</string>
<string>applinks:t.me</string>
</array>

Vir meer omvattende insigte, verwys na die geargiveerde Apple Developer-dokumentasie.

As jy werk met 'n saamgestelde toepassing, kan toekennings soos uiteengesit in hierdie gids onttrek word.

Die Apple App Site Association-lêer ophaal

Die apple-app-site-association-lêer moet van die bediener afgehaal word deur die domeine wat in die toekennings gespesifiseer is. Maak seker dat die lêer direk toeganklik is via HTTPS by https://<domain>/apple-app-site-association. Hulpmiddels soos die Apple App Site Association (AASA) Validator kan help met hierdie proses.

Hantering van Universele Skakels in die Toepassing

Die toepassing moet spesifieke metodes implementeer om universele skakels korrek te hanteer. Die primêre metode om na te kyk is application:continueUserActivity:restorationHandler:. Dit is noodsaaklik dat die skema van die behandelde URL's HTTP of HTTPS is, aangesien ander nie ondersteun sal word nie.

Validasie van die Data Handler-metode

Wanneer 'n universele skakel 'n toepassing oopmaak, word 'n NSUserActivity-voorwerp na die toepassing gestuur saam met die URL. Voordat hierdie URL verwerk word, is dit noodsaaklik om dit te valideer en te saniteer om sekuriteitsrisiko's te voorkom. Hier is 'n voorbeeld in Swift wat die proses demonstreer:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// Check for web browsing activity and valid URL
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL {
application.open(url, options: [:], completionHandler: nil)
}

return true
}

URL's moet sorgvuldig geparseer en gevalideer word, veral as dit parameters bevat, om te voorkom dat potensiële vervalsing of verkeerde data plaasvind. Die NSURLComponents API is nuttig vir hierdie doel, soos hieronder gedemonstreer:

func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true),
let path = components.path,
let params = components.queryItems else {
return false
}

if let albumName = params.first(where: { $0.name == "albumname" })?.value,
let photoIndex = params.first(where: { $0.name == "index" })?.value {
// Process the URL with album name and photo index

return true

} else {
// Handle invalid or missing parameters

return false
}
}

Deur noukeurige konfigurasie en validering, kan ontwikkelaars verseker dat universele skakels die gebruikerservaring verbeter terwyl sekuriteits- en privaatheidsstandaarde gehandhaaf word.

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: