iOS UIActivity Sharing
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)
iOS 6'dan itibaren, üçüncü taraf uygulamalar, Apple'ın Uygulamalar Arası İletişim kılavuzunda belirtildiği gibi, AirDrop gibi mekanizmaları kullanarak metin, URL veya resim gibi veri paylaşma yeteneğine sahip olmuştur. Bu özellik, "Paylaş" butonuna etkileşimde bulunulduğunda ortaya çıkan sistem genelinde bir paylaşım etkinliği sayfası aracılığıyla kendini gösterir.
Tüm yerleşik paylaşım seçeneklerinin kapsamlı bir listesi UIActivity.ActivityType adresinde mevcuttur. Geliştiriciler, uygulamaları için uygun olmadığını düşündükleri belirli paylaşım seçeneklerini hariç tutmayı tercih edebilirler.
Dikkat edilmesi gerekenler:
Paylaşılan verinin niteliği.
Özel etkinliklerin dahil edilmesi.
Belirli etkinlik türlerinin hariç tutulması.
Paylaşım, paylaşılacak öğelerin geçirildiği bir UIActivityViewController
örneği oluşturularak kolaylaştırılır. Bu, şu şekilde çağrılarak gerçekleştirilir:
Geliştiriciler, UIActivityViewController
'ı başlatıldığı aktiviteler ve özel aktiviteler için dikkatlice incelemeli, ayrıca belirtilen excludedActivityTypes
'ı da göz önünde bulundurmalıdır.
Veri alırken aşağıdaki unsurlar kritik öneme sahiptir:
özel belge türlerinin beyanı.
Uygulamanın açabileceği belge türlerinin belirtilmesi.
alınan verilerin bütünlüğünün doğrulanması.
Kaynak koduna erişim olmadan, Info.plist
dosyasında UTExportedTypeDeclarations
, UTImportedTypeDeclarations
ve CFBundleDocumentTypes
gibi anahtarları inceleyerek bir uygulamanın işleyebileceği ve beyan edebileceği belge türlerini anlamak mümkündür.
Bu anahtarlar hakkında kısa bir rehber Stackoverflow üzerinde mevcuttur ve sistem genelinde tanınma için UTIs tanımlamanın ve içe aktarmanın önemini vurgular, ayrıca belge türlerini uygulamanızla ilişkilendirerek "Aç" diyalogunda entegrasyon sağlar.
gönderme aktivitelerini test etmek için:
Paylaşılan öğeleri ve aktiviteleri yakalamak için init(activityItems:applicationActivities:)
yöntemine hook atılabilir.
excludedActivityTypes
özelliğini keserek hariç tutulan aktiviteleri belirlemek mümkündür.
öğeleri alma süreci ise:
"Aç..." diyalogunu tetikleyen başka bir kaynaktan (örneğin, AirDrop, e-posta) uygulama ile bir dosya paylaşmayı içerir.
Uygulamanın yanıtını gözlemlemek için statik analiz sırasında belirlenen diğer yöntemler arasında application:openURL:options:
yöntemine hook atmak.
Uygulamanın dayanıklılığını değerlendirmek için hatalı dosyalar veya fuzzing teknikleri kullanmak.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)