iOS UIPasteboard
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
iOS cihazlarda uygulamalar arasında veri paylaşımı, iki ana kategoriye ayrılan UIPasteboard
mekanizması ile sağlanır:
Sistem genelinde genel panoya: Bu, herhangi bir uygulama ile veri paylaşmak için kullanılır ve cihaz yeniden başlatıldığında ve uygulama kaldırıldığında verilerin kalıcı olmasını sağlamak için tasarlanmıştır; bu özellik iOS 10'dan beri mevcuttur.
Özel / İsimlendirilmiş panolar: Bunlar, bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşmak için özel olarak tasarlanmıştır ve oluşturuldukları uygulama süresinin ötesinde kalıcı olmaları amaçlanmamıştır; bu, iOS 10 ile getirilen değişiklikleri takip eder.
Güvenlik hususları, panoları kullanırken önemli bir rol oynamaktadır. Örneğin:
Kullanıcıların panoya erişim için uygulama izinlerini yönetebileceği bir mekanizma yoktur.
Yetkisiz arka plan izleme riskini azaltmak için, erişim uygulama ön planda olduğunda kısıtlanmıştır (iOS 9'dan beri).
Gizlilik endişeleri nedeniyle kalıcı isimlendirilmiş panoların kullanımı, paylaşılan konteynerler lehine teşvik edilmemektedir.
iOS 10 ile tanıtılan Evrensel Panoya özelliği, içeriğin genel pano aracılığıyla cihazlar arasında paylaşılmasına olanak tanır ve geliştiricilerin veri süresini ayarlayıp otomatik içerik aktarımını devre dışı bırakmalarına olanak tanır.
Hassas bilgilerin yanlışlıkla genel panoda saklanmadığından emin olmak çok önemlidir. Ayrıca, uygulamalar, genel pano verilerinin istenmeyen eylemler için kötüye kullanılmasını önleyecek şekilde tasarlanmalı ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilmelidir.
Statik analiz için, kaynak kodu veya ikili dosyada şunları arayın:
sistem genelinde genel pano kullanımını belirlemek için generalPasteboard
.
özel panolar oluşturmak için pasteboardWithName:create:
ve pasteboardWithUniqueName
. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu artık kullanılmamaktadır.
Dinamik analiz, belirli yöntemleri izlemek veya takip etmekle ilgilidir:
Sistem genelindeki kullanımı izlemek için generalPasteboard
'ı izleyin.
Özel uygulamalar için pasteboardWithName:create:
ve pasteboardWithUniqueName
'ı takip edin.
Kalıcılık ayarlarını kontrol etmek için artık kullanılmayan setPersistent:
yöntem çağrılarını gözlemleyin.
İzlenmesi gereken ana detaylar şunlardır:
Pano isimleri ve içerikler (örneğin, dizeler, URL'ler, resimler kontrol edilerek).
Mevcut öğe sayısı ve veri türleri, standart ve özel veri türü kontrolleri kullanılarak.
setItems:options:
yöntemini inceleyerek son kullanma ve yerel seçenekler.
Bir izleme aracı kullanma örneği, objection'ın pano izleyicisidir, bu her 5 saniyede bir genel panoyu değişiklikler için kontrol eder ve yeni verileri çıktılar.
İşte her 5 saniyede bir panodan değişiklikleri okumak ve kaydetmek için objection'ın yaklaşımından ilham alan basit bir JavaScript betiği örneği:
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)