14 KiB
AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें, तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- 💬 Discord समूह में शामिल हों या telegram समूह में या Twitter पर मुझे 🐦 @carlospolopm का अनुसरण करें.
- HackTricks के github repos और HackTricks Cloud में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
Universal links का उपयोग करके सीधे उपयोगकर्ताओं को ऐप में रीडायरेक्ट किया जा सकता है, सफारी के माध्यम से रीडायरेक्शन के बिना।
Universal links अद्वितीय होते हैं, इसलिए उन्हें अन्य ऐप्स द्वारा दावा नहीं किया जा सकता क्योंकि वे मानक HTTP(S) लिंक्स का उपयोग करते हैं वेबसाइट पर जहां मालिक ने एक फाइल अपलोड की है ताकि यह सुनिश्चित किया जा सके कि वेबसाइट और ऐप संबंधित हैं।
चूंकि ये लिंक HTTP(S) स्कीम्स का उपयोग करते हैं, जब ऐप इंस्टॉल नहीं होता है, सफारी लिंक खोलेगा उपयोगकर्ताओं को पेज पर रीडायरेक्ट करते हुए। यह ऐप्स को ऐप के साथ संवाद करने की अनुमति देता है भले ही वह इंस्टॉल न हो।
Universal links बनाने के लिए apple-app-site-association
नामक एक JSON फाइल बनाने की आवश्यकता होती है जिसमें विवरण होते हैं। फिर इस फाइल को आपके वेबसर्वर की रूट डायरेक्टरी में होस्ट किया जाना चाहिए (उदाहरण के लिए https://google.com/apple-app-site-association)।
पेंटेस्टर के लिए यह फाइल बहुत दिलचस्प होती है क्योंकि यह पथों का खुलासा करती है। यह उन रिलीज़ के पथों का भी खुलासा कर सकती है जो अभी तक प्रकाशित नहीं हुए हैं।
Associated Domains Entitlement की जांच करना
Xcode में, Capabilities टैब पर जाएं और Associated Domains के लिए खोजें। आप .entitlements
फाइल का निरीक्षण करके com.apple.developer.associated-domains
की तलाश भी कर सकते हैं। प्रत्येक डोमेन को applinks:
के साथ प्रीफिक्स किया जाना चाहिए, जैसे कि applinks:www.mywebsite.com
।
यहाँ Telegram की .entitlements
फाइल से एक उदाहरण है:
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:telegram.me</string>
<string>applinks:t.me</string>
</array>
अधिक विस्तृत जानकारी archived Apple Developer Documentation में पाई जा सकती है।
यदि आपके पास केवल संकलित एप्लिकेशन है, तो आप इस गाइड का अनुसरण करके entitlements निकाल सकते हैं:
{% content-ref url="extracting-entitlements-from-compiled-application.md" %} extracting-entitlements-from-compiled-application.md {% endcontent-ref %}
Apple App Site Association File प्राप्त करना
पिछले चरण से प्राप्त डोमेन्स का उपयोग करके सर्वर से apple-app-site-association
फाइल प्राप्त करने का प्रयास करें। इस फाइल को https://<domain>/apple-app-site-association
या https://<domain>/.well-known/apple-app-site-association
पर HTTPS के माध्यम से, बिना किसी रीडायरेक्ट के, सुलभ होना चाहिए।
आप इसे अपने ब्राउज़र के साथ स्वयं प्राप्त कर सकते हैं या Apple App Site Association (AASA) Validator का उपयोग कर सकते हैं।
Link Receiver Method की जाँच करना
लिंक्स को प्राप्त करने और उचित रूप से संभालने के लिए, एप्लिकेशन डेलिगेट को application:continueUserActivity:restorationHandler:
को लागू करना होगा। यदि आपके पास मूल प्रोजेक्ट है तो इस विधि की खोज करने का प्रयास करें।
कृपया ध्यान दें कि यदि एप्लिकेशन openURL:options:completionHandler:
का उपयोग करके एप्लिकेशन की वेबसाइट के लिए एक यूनिवर्सल लिंक खोलता है, तो लिंक एप्लिकेशन में नहीं खुलेगा। चूंकि कॉल एप्लिकेशन से आती है, इसे एक यूनिवर्सल लिंक के रूप में संभाला नहीं जाएगा।
webpageURL
की स्कीम HTTP या HTTPS होनी चाहिए (किसी अन्य स्कीम को एक अपवाद फेंकना चाहिए)।URLComponents
/NSURLComponents
कीscheme
इंस्टेंस प्रॉपर्टी का उपयोग इसे सत्यापित करने के लिए किया जा सकता है।
Data Handler Method की जाँच करना
जब iOS एक यूनिवर्सल लिंक के परिणामस्वरूप एक एप्लिकेशन खोलता है, तो एप्लिकेशन को NSUserActivityTypeBrowsingWeb
के activityType
मान के साथ एक NSUserActivity
ऑब्जेक्ट प्राप्त होता है। एक्टिविटी ऑब्जेक्ट की webpageURL
प्रॉपर्टी में उस HTTP या HTTPS URL को होता है जिसे उपयोगकर्ता एक्सेस करता है। निम्नलिखित उदाहरण Swift में इसे ठीक इसी तरह से सत्यापित करता है इससे पहले कि URL खोला जाए:
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// ...
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL {
application.open(url, options: [:], completionHandler: nil)
}
return true
}
इसके अलावा, याद रखें कि यदि URL में पैरामीटर्स शामिल हैं, तो उन्हें विश्वसनीय डोमेन से आने पर भी सावधानीपूर्वक सैनिटाइज़ और वैलिडेट किए बिना भरोसा नहीं किया जाना चाहिए। उदाहरण के लिए, वे एक हमलावर द्वारा स्पूफ किए गए हो सकते हैं या उनमें गलत डेटा शामिल हो सकता है। यदि ऐसा है, तो पूरा URL और इसलिए यूनिवर्सल लिंक अनुरोध को निरस्त कर दिया जाना चाहिए।
NSURLComponents
API का उपयोग URL के घटकों को पार्स और मैनिपुलेट करने के लिए किया जा सकता है। यह application:continueUserActivity:restorationHandler:
मेथड का भी हिस्सा हो सकता है या इससे अलग एक मेथड हो सकता है जिसे इससे कॉल किया जा रहा है। निम्नलिखित उदाहरण इसे दर्शाता है:
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true),
let path = components.path,
let params = components.queryItems else {
return false
}
if let albumName = params.first(where: { $0.name == "albumname" })?.value,
let photoIndex = params.first(where: { $0.name == "index" })?.value {
// Interact with album name and photo index
return true
} else {
// Handle when album and/or album name or photo index missing
return false
}
}
संदर्भ
{% embed url="https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8" %}
AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- 💬 Discord group में शामिल हों या telegram group में या Twitter पर मुझे 🐦 @carlospolopm का अनुसरण करें.
- HackTricks के github repos और HackTricks Cloud में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.