# iOS UIActivity Sharing <details> <summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> HackTricks का समर्थन करने के अन्य तरीके: * यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! * [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें * हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें * **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें। * **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। </details> # UIActivity Sharing Simplified iOS 6 के बाद, थर्ड-पार्टी एप्लिकेशनों को **डेटा साझा करने** की अनुमति है, जैसे AirDrop का उपयोग करके टेक्स्ट, URLs, या छवियों को साझा करने के लिए, जैसा कि Apple के [Inter-App Communication guide](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) में व्याख्या की गई है। यह सुविधा एक सिस्टम-व्यापी _शेयर एक्टिविटी शीट_ के माध्यम से प्रकट होती है जो "शेयर" बटन के साथ इंटरैक्ट करने पर सामने आती है। सभी इनबिल्ट शेयरिंग विकल्पों की व्यापक गणना [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) पर उपलब्ध है। डेवलपर्स अपने एप्लिकेशन के लिए अनुपयुक्त मानते हैं तो वे कुछ शेयरिंग विकल्पों को छोड़ सकते हैं। ## **डेटा साझा कैसे करें** ध्यान केंद्रित करना चाहिए: - साझा किए जा रहे डेटा का प्रकृति। - कस्टम एक्टिविटी का समावेश। - कुछ एक्टिविटी प्रकारों को छोड़ना। साझा करना `UIActivityViewController` का निर्माण करके सुविधाजनक है, जिसमें साझा करने के लिए इच्छित आइटम पारित किए जाते हैं। इसे बुलाकर प्राप्त किया जाता है: ```bash $ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems 0x1000df034 45 44 initWithActivityItems:applicationActivities: ``` Developers को `UIActivityViewController` को जांचना चाहिए जिसमें यह initialized होता है activities और custom activities के साथ, साथ ही किसी निर्दिष्ट `excludedActivityTypes` को। ## **डेटा प्राप्त करने का तरीका** निम्नलिखित पहलुओं में महत्वपूर्ण हैं जब डेटा प्राप्त किया जाता है: - **कस्टम दस्तावेज़ प्रकार** की घोषणा। - **दस्तावेज़ प्रकारों की घोषणा** जिन्हें ऐप खोल सकता है। - प्राप्त किए गए डेटा की **मान्यता की पुष्टि**। स्रोत कोड तक पहुंच के बिना, कोई भी `Info.plist` की जांच कर सकता है जैसे `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, और `CFBundleDocumentTypes` जैसे keys के लिए ताकि ऐप के दस्तावेज़ के प्रकारों को समझा जा सके और घोषित किया जा सके। इन keys पर एक संक्षिप्त मार्गदर्शिका [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) पर उपलब्ध है, जो सिस्टम-व्यापी मान्यता के लिए UTIs की परिभाषा और दस्तावेज़ प्रकारों को आपके ऐप के साथ जोड़ने की महत्वता को हाइलाइट करती है "Open With" संवाद में एकीकरण के लिए। ## गतिशील परीक्षण दृष्टिकोण **भेजने की गतिविधियों** का परीक्षण करने के लिए, एक व्यक्ति: - `init(activityItems:applicationActivities:)` में हुक कर सकता है ताकि साझा किए जा रहे आइटम और गतिविधियों को कैप्चर किया जा सके। - `excludedActivityTypes` property को अंतर्दृष्टि करके छोड़ी गई गतिविधियों की पहचान कर सकता है। **आइटम प्राप्त करने** के लिए, इसमें शामिल है: - एक फ़ाइल को एप्लिकेशन के साथ साझा करना अन्य स्रोत से (जैसे, AirDrop, ईमेल) जो "Open with..." संवाद को प्रोत्साहित करता है। - `application:openURL:options:` में हुक करना और स्थिर विश्लेषण के दौरान पहचाने गए अन्य विधियों को देखने के लिए ऐप की प्रतिक्रिया को देखना। - ऐप की मजबूती का मूल्यांकन करने के लिए अविकसित फ़ाइल या fuzzing तकनीकों का उपयोग करना। ## संदर्भ * [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)