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

7.9 KiB

iOS UIActivity Sharing

जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

UIActivity Sharing Simplified

iOS 6 के बाद, थर्ड-पार्टी एप्लिकेशनों को डेटा साझा करने की अनुमति है, जैसे AirDrop का उपयोग करके टेक्स्ट, URLs, या छवियों को साझा करने के लिए, जैसा कि Apple के Inter-App Communication guide में व्याख्या की गई है। यह सुविधा एक सिस्टम-व्यापी शेयर एक्टिविटी शीट के माध्यम से प्रकट होती है जो "शेयर" बटन के साथ इंटरैक्ट करने पर सामने आती है।

सभी इनबिल्ट शेयरिंग विकल्पों की व्यापक गणना UIActivity.ActivityType पर उपलब्ध है। डेवलपर्स अपने एप्लिकेशन के लिए अनुपयुक्त मानते हैं तो वे कुछ शेयरिंग विकल्पों को छोड़ सकते हैं।

डेटा साझा कैसे करें

ध्यान केंद्रित करना चाहिए:

  • साझा किए जा रहे डेटा का प्रकृति।
  • कस्टम एक्टिविटी का समावेश।
  • कुछ एक्टिविटी प्रकारों को छोड़ना।

साझा करना UIActivityViewController का निर्माण करके सुविधाजनक है, जिसमें साझा करने के लिए इच्छित आइटम पारित किए जाते हैं। इसे बुलाकर प्राप्त किया जाता है:

$ 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 पर उपलब्ध है, जो सिस्टम-व्यापी मान्यता के लिए UTIs की परिभाषा और दस्तावेज़ प्रकारों को आपके ऐप के साथ जोड़ने की महत्वता को हाइलाइट करती है "Open With" संवाद में एकीकरण के लिए।

गतिशील परीक्षण दृष्टिकोण

भेजने की गतिविधियों का परीक्षण करने के लिए, एक व्यक्ति:

  • init(activityItems:applicationActivities:) में हुक कर सकता है ताकि साझा किए जा रहे आइटम और गतिविधियों को कैप्चर किया जा सके।
  • excludedActivityTypes property को अंतर्दृष्टि करके छोड़ी गई गतिविधियों की पहचान कर सकता है।

आइटम प्राप्त करने के लिए, इसमें शामिल है:

  • एक फ़ाइल को एप्लिकेशन के साथ साझा करना अन्य स्रोत से (जैसे, AirDrop, ईमेल) जो "Open with..." संवाद को प्रोत्साहित करता है।
  • application:openURL:options: में हुक करना और स्थिर विश्लेषण के दौरान पहचाने गए अन्य विधियों को देखने के लिए ऐप की प्रतिक्रिया को देखना।
  • ऐप की मजबूती का मूल्यांकन करने के लिए अविकसित फ़ाइल या fuzzing तकनीकों का उपयोग करना।

संदर्भ