iOS Custom URI Handlers / Deeplinks / Custom Schemes
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Özel URL şemaları, uygulamaların Apple Geliştirici Dokümantasyonu detaylarında açıklandığı gibi, özel bir protokol kullanarak iletişim kurmasını sağlar. Bu şemalar, uygulama tarafından beyan edilmeli ve ardından bu şemalara uygun gelen URL'leri işlemesi gerekmektedir. Tüm URL parametrelerini doğrulamak ve herhangi bir hatalı URL'yi atmak saldırıları önlemek için kritik öneme sahiptir.
myapp://hostname?data=123876123
URI'sinin belirli bir uygulama eylemini tetiklediği bir örnek verilmiştir. Skype Mobil uygulamasında, skype://
protokolü aracılığıyla izinsiz arama eylemlerine izin veren bir güvenlik açığı not edilmiştir. Kayıtlı şemalar, uygulamanın Info.plist
dosyasında CFBundleURLTypes
altında bulunabilir. Kötü niyetli uygulamalar, hassas bilgileri ele geçirmek için URI'leri yeniden kaydederek bunu istismar edebilir.
iOS 9.0'dan itibaren, bir uygulamanın mevcut olup olmadığını kontrol etmek için canOpenURL:
kullanımı, Info.plist
dosyasında LSApplicationQueriesSchemes
altında URL şemalarının beyan edilmesini gerektirir. Bu, bir uygulamanın sorgulayabileceği şemaları 50 ile sınırlayarak, uygulama sayımını önleyerek gizliliği artırır.
Geliştiriciler, URL yol yapısını ve doğrulamasını anlamak için kaynak kodundaki belirli yöntemleri incelemelidir, örneğin application:didFinishLaunchingWithOptions:
ve application:openURL:options:
. Örneğin, Telegram, URL'leri açmak için çeşitli yöntemler kullanır:
openURL:options:completionHandler:
gibi yöntemler, diğer uygulamalarla etkileşimde bulunmak için URL'leri açmak açısından kritik öneme sahiptir. Uygulamanın kaynak kodunda bu tür yöntemlerin kullanımını belirlemek, dış iletişimleri anlamak için anahtardır.
application:handleOpenURL:
ve openURL:
gibi URL açma işlemlerini yöneten kullanımdan kaldırılan yöntemler, güvenlik etkileri açısından belirlenmeli ve gözden geçirilmelidir.
URL şemalarını fuzzing yapmak, bellek bozulması hatalarını belirleyebilir. Frida gibi araçlar, çökme durumlarını izlemek için farklı yüklerle URL'leri açarak bu süreci otomatikleştirebilir; bu, iGoat-Swift uygulamasındaki URL'lerin manipülasyonu ile örneklendirilmiştir:
bu gönderiye göre, kötü niyetli uygulamalar diğer uygulamaların özel şemalarını kaydedebilir, ardından kötü niyetli uygulama, ASWebAuthenticationSession ile Safari Uygulamasının tüm çerezlerine sahip bir tarayıcı açabilir.
Kötü niyetli uygulama, tarayıcı ile bir saldırganın kontrolündeki web sayfasını yükleyebilir ve TCC, mobil kullanıcıdan o uygulamayı açmak için izin isteyecektir. Ardından, kötü niyetli web sayfası, örneğin prompt=none
parametresi ile bir OAuth akışına yönlendirebilir. Kullanıcı zaten OAuth akışında oturum açmışsa, OAuth akışı, kurban uygulamasına kurban uygulamanın özel şemasını kullanarak gizli anahtarı geri gönderecektir.
Ancak, kötü niyetli uygulama bunu da kaydettiği için ve kullanılan tarayıcı kötü niyetli uygulamanın içinde olduğu için, bu durumda özel şema kötü niyetli uygulama tarafından işlenecek ve OAuth token'ını çalma yeteneğine sahip olacaktır.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)