hacktricks/mobile-pentesting/ios-pentesting/ios-uiactivity-sharing.md

79 lines
5.9 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# iOS UIActivity Paylaşımı
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
# UIActivity Paylaşımı Basitleştirildi
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
iOS 6'dan itibaren, üçüncü taraf uygulamaların metin, URL veya resim gibi verileri paylaşmasına olanak tanınmıştır. Bu özellik, Apple'ın [Uygulama Arası İletişim kılavuzunda](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) belirtildiği gibi AirDrop gibi mekanizmalar aracılığıyla gerçekleşir. Bu özellik, "Paylaş" düğmesiyle etkileşime geçildiğinde ortaya çıkan sistem genelinde bir _paylaşım etkinlik sayfası_ ile kendini gösterir.
2024-02-10 18:14:16 +00:00
Tüm yerleşik paylaşım seçeneklerinin kapsamlı bir numaralandırması [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) adresinde bulunabilir. Geliştiriciler, uygulamaları için uygun bulmadıkları belirli paylaşım seçeneklerini hariç tutmayı tercih edebilirler.
2024-02-10 18:14:16 +00:00
## **Veri Nasıl Paylaşılır**
2024-02-10 18:14:16 +00:00
Dikkat şu noktalara yönlendirilmelidir:
2024-02-10 18:14:16 +00:00
- Paylaşılan verinin doğası.
- Özel etkinliklerin dahil edilmesi.
- Belirli etkinlik türlerinin hariç tutulması.
2024-02-10 18:14:16 +00:00
Paylaşım, paylaşılacak öğelerin geçirildiği bir `UIActivityViewController` örnekleme ile kolaylaştırılır. Bunun için aşağıdaki çağrı yapılır:
```bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
```
2024-02-10 18:14:16 +00:00
Geliştiriciler, `UIActivityViewController`'ı incelemeli ve başlatıldığı aktiviteleri ve özel aktiviteleri, ayrıca belirtilen `excludedActivityTypes`'ı dikkatlice kontrol etmelidir.
2024-02-10 18:14:16 +00:00
## **Veri Alma Nasıl Yapılır**
2024-02-10 18:14:16 +00:00
Veri alırken aşağıdaki unsurlar önemlidir:
2024-02-10 18:14:16 +00:00
- **Özel belge türlerinin** bildirimi.
- Uygulamanın açabileceği **belge türlerinin belirtilmesi**.
- Alınan verinin **bütünlüğünün doğrulanması**.
2024-02-10 18:14:16 +00:00
Kaynak koduna erişim olmadan, bir uygulamanın hangi belge türlerini işleyebileceğini ve bildirebileceğini anlamak için `Info.plist` dosyası incelenebilir. `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` ve `CFBundleDocumentTypes` gibi anahtarlar bu tür belgelerin tanımlanması ve sistem genelinde tanınması için UTI'ların tanımlanmasının ve uygulamanızın "Aç ile" iletişim kutusuna entegre edilmesinin önemini vurgulamaktadır.
2024-02-10 18:14:16 +00:00
Bu anahtarlar hakkında özlü bir kılavuz [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) üzerinde mevcuttur.
2024-02-10 18:14:16 +00:00
## Dinamik Test Yaklaşımı
2024-02-10 18:14:16 +00:00
**Aktiviteleri göndermek** için şunlar yapılabilir:
2024-02-10 18:14:16 +00:00
- Paylaşılan öğeleri ve paylaşılan aktiviteleri yakalamak için `init(activityItems:applicationActivities:)` yöntemine bağlanmak.
- `excludedActivityTypes` özelliğini engelleyen aktiviteleri yakalamak için `excludedActivityTypes` özelliğini engelleyen aktiviteleri yakalamak.
2024-02-10 18:14:16 +00:00
**Öğeleri almak** için şunlar yapılmalıdır:
2024-02-10 18:14:16 +00:00
- Başka bir kaynaktan (örneğin, AirDrop, e-posta) uygulamayla bir dosya paylaşmak ve "Aç ile..." iletişim kutusunu tetiklemek.
- 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 bağlanmak.
- Uygulamanın sağlamlığını değerlendirmek için hatalı dosyalar veya fuzzing teknikleri kullanmak.
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
## Referanslar
2024-02-08 03:08:28 +00:00
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
2022-04-28 16:01:33 +00:00
</details>