hacktricks/pentesting-web/clickjacking.md

186 lines
24 KiB
Markdown
Raw Normal View History

2023-11-06 08:38:02 +00:00
# क्लिकजैकिंग
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह।
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें।
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल** हों या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)** का पालन करें।**
* **हैकिंग ट्रिक्स साझा करें और** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके** अपने हैकिंग ट्रिक्स साझा करें।
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
2023-11-06 08:38:02 +00:00
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और आसानी से **वर्कफ़्लो** बनाएं और संचालित करें, जो दुनिया के **सबसे उन्नत** समुदाय उपकरणों द्वारा संचालित होते हैं।\
आज ही पहुंच प्राप्त करें:
2022-04-28 16:01:33 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
2023-11-06 08:38:02 +00:00
## क्लिकजैकिंग क्या है
2023-11-06 08:38:02 +00:00
क्लिकजैकिंग एक हमला है जो एक **उपयोगकर्ता** को धोखा देता है और उसे एक वेबपेज **तत्व** पर **क्लिक** करने के लिए प्रेरित करता है जो **अदृश्य** होता है या दूसरे तत्व की तरह छिपा होता है। इससे उपयोगकर्ताओं को अनजाने में मैलवेयर डाउनलोड करने, दुष्ट वेब पेज पर जाने, क्रेडेंशियल्स या संवेदनशील जानकारी प्रदान करने, पैसे ट्रांसफर करने या ऑनलाइन उत्पादों की खरीदारी करने के लिए मजबूर किया जा सकता है। (यहां से लिया गया है [यहां](https://www.imperva.com/learn/application-security/clickjacking/))।
2023-11-06 08:38:02 +00:00
### पूर्व-पूर्ण फॉर्म चाल
2023-11-06 08:38:02 +00:00
कभी-कभी **एक पृष्ठ को लोड करते समय GET पैरामीटर का उपयोग करके फ़ॉर्म के फ़ील्ड के मान को भरना** संभव होता है। एक हमलावर्ती इस व्यवहार का दुरुपयोग कर सकता है और एक फ़ॉर्म को अनियमित डेटा से भरकर क्लिकजैकिंग पेलोड भेज सकता है ताकि उपयोगकर्ता बटन सबमिट दबाएं।
2020-10-13 11:29:54 +00:00
2023-11-06 08:38:02 +00:00
### ड्रैग एंड ड्रॉप के साथ फ़ॉर्म भरें
2020-10-13 11:29:54 +00:00
2023-11-06 08:38:02 +00:00
यदि आपको उपयोगकर्ता से **एक फ़ॉर्म भरने** की आवश्यकता है लेकिन आप उससे सीधे कुछ विशिष्ट जानकारी (जैसे ईमेल और या विशिष्ट पासवर्ड जो आप जानते हैं) पूछना नहीं चाहते हैं, तो आप उससे बस यह कहकर कुछ ड्रैग एंड ड्रॉप करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे [**इस उदाहरण में**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)।
2023-11-06 08:38:02 +00:00
### मूल पेलोड
```markup
<style>
2023-11-06 08:38:02 +00:00
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>
```
2023-11-06 08:38:02 +00:00
### मल्टिस्टेप पेलोड
2023-11-06 08:38:02 +00:00
एक मल्टिस्टेप पेलोड एक तकनीक है जिसका उपयोग क्लिकजैकिंग हमलों को अधिक प्रभावी बनाने के लिए किया जाता है। इस तकनीक में, हमलेबाज एक या एक से अधिक चरणों में अपने पेलोड को विभाजित करता है। प्रत्येक चरण में, वे उपयोगकर्ता को धोखा देने के लिए विभिन्न तरीकों का उपयोग करते हैं। इस प्रकार, उपयोगकर्ता को धोखा देने के लिए अधिक संभावनाएं होती हैं और उन्हें धोखा देना और उपयोगकर्ता को धोखा देने के बाद के कार्रवाई को छिपाना मुश्किल हो जाता है।
2023-11-06 08:38:02 +00:00
इस तकनीक का उपयोग करने के लिए, हमलेबाज को एक वेब पेज में एक या एक से अधिक इफ्रेम्स या अन्य तरीकों का उपयोग करके अपने पेलोड को विभाजित करना होता है। प्रत्येक इफ्रेम में, वे उपयोगकर्ता को धोखा देने के लिए विभिन्न तरीकों का उपयोग करते हैं, जैसे कि अदृश्य बटन, अदृश्य लिंक, या अदृश्य फ़ॉर्म। इस प्रकार, उपयोगकर्ता को धोखा देने के लिए अधिक संभावनाएं होती हैं और उन्हें धोखा देना और उपयोगकर्ता को धोखा देने के बाद के कार्रवाई को छिपाना मुश्किल हो जाता है।
```markup
<style>
2023-11-06 08:38:02 +00:00
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>
```
2023-11-06 08:38:02 +00:00
### ड्रैग एंड ड्रॉप + क्लिक पेलोड
This technique involves combining the drag and drop functionality with a click payload to perform a clickjacking attack. The attack is executed by tricking the user into dragging and dropping an element onto a hidden button or link, which triggers a malicious action.
2023-11-06 08:38:02 +00:00
इस तकनीक में, ड्रैग एंड ड्रॉप की सुविधा को क्लिक पेलोड के साथ मिलाकर क्लिकजैकिंग हमला किया जाता है। हमला उपयोगकर्ता को धोखा देकर किया जाता है, जिसमें उपयोगकर्ता को एक छिपी हुई बटन या लिंक पर एक तत्परता दृश्य को खींचने और छोड़ने के लिए प्रेरित किया जाता है, जो एक दुष्ट कार्रवाई को ट्रिगर करता है।
2020-10-13 11:29:54 +00:00
2023-11-06 08:38:02 +00:00
To implement this attack, the attacker needs to create a draggable element and position it over the target button or link. The draggable element is usually made invisible or transparent to deceive the user. When the user interacts with the visible element, they unknowingly trigger the hidden button or link, which can lead to unintended actions or malicious operations.
इस हमले को लागू करने के लिए, हमलावर को एक खींचने योग्य तत्व बनाने और इसे लक्षित बटन या लिंक पर स्थानांतरित करने की आवश्यकता होती है। खींचने योग्य तत्व आमतौर पर अदृश्य या पारदर्शी बनाया जाता है ताकि उपयोगकर्ता को धोखा दिया जा सके। जब उपयोगकर्ता दृश्यमान तत्व के साथ संवेदनशील होता है, तो उन्हें अनजाने में छिपे हुए बटन या लिंक को ट्रिगर करते हैं, जो अनहेत गतिविधियों या दुष्ट कार्रवाई की ओर ले जा सकता है।
This technique can be used to perform various malicious actions, such as stealing sensitive information, performing unauthorized transactions, or executing arbitrary code on the victim's system. It is important for web developers to implement countermeasures, such as frame-busting scripts or X-Frame-Options headers, to prevent clickjacking attacks.
इस तकनीक का उपयोग संवेदनशील जानकारी की चोरी, अनधिकृत लेनदेन करना या पीड़ित के सिस्टम पर अनियमित कोड को निष्पादित करने जैसी विभिन्न दुष्ट कार्रवाईयों को करने के लिए किया जा सकता है। वेब डेवलपर्स के लिए महत्वपूर्ण है कि वे क्लिकजैकिंग हमलों को रोकने के लिए फ्रेम-बस्टिंग स्क्रिप्ट या X-Frame-Options हैडर जैसे उत्तराधिकार कार्रवाई लागू करें।
2020-10-13 11:29:54 +00:00
```markup
<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>
```
2023-11-06 08:38:02 +00:00
### XSS + क्लिकजैकिंग
2020-10-13 11:29:54 +00:00
2023-11-06 08:38:02 +00:00
यदि आपने किसी **XSS हमला खोजा है जिसके लिए उपयोगकर्ता को क्लिक करना** होता है ताकि XSS **ट्रिगर** हो सके और पेज **क्लिकजैकिंग के लिए संक्रमित** होती है, तो आप इसे इस्तेमाल करके उपयोगकर्ता को धोखा देकर बटन/लिंक पर क्लिक कराने में सक्षम हो सकते हैं।\
उदाहरण:\
_आपने खाते के कुछ निजी विवरणों (विवरण जो **केवल आप सेट और पढ़ सकते हैं**) में एक **स्वयं XSS** खोजा है। इन विवरणों को सेट करने के लिए **फ़ॉर्म** वाला पेज **क्लिकजैकिंग के लिए संक्रमित** है और आप GET पैरामीटर के साथ **फ़ॉर्म** को **पूर्व-पूर्ण** कर सकते हैं।_\
__एक हमलावर्ती उपयोगकर्ता उस पेज के लिए एक **क्लिकजैकिंग** हमला तैयार कर सकता है जिसमें **फ़ॉर्म** को **XSS पेलोड** के साथ **पूर्व-पूर्ण** किया जाता है और उपयोगकर्ता को **धोखा देकर** फ़ॉर्म को **सबमिट** करने के लिए मजबूर किया जाता है। इसलिए, **जब फ़ॉर्म सबमिट किया जाता है** और मान्यताएं संशोधित होती हैं, तो **उपयोगकर्ता XSS को निष्पादित करेगा**
2023-11-06 08:38:02 +00:00
## क्लिकजैकिंग से बचने के लिए कैसे
2023-11-06 08:38:02 +00:00
### क्लाइंट साइड की रक्षा
2023-11-06 08:38:02 +00:00
यह संभव है कि क्लाइंट साइड पर स्क्रिप्ट को निष्पादित किया जा सकता है जो क्लिकजैकिंग को रोकने के लिए निम्नलिखित व्यवहार करते हैं:
2023-11-06 08:38:02 +00:00
* वर्तमान एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है यह सत्यापित और प्रयोग करें,
* सभी फ्रेम दिखाएं,
* अदृश्य फ्रेम पर क्लिक करने से रोकें,
* उपयोगकर्ता पर संभावित क्लिकजैकिंग हमलों को रोकें और चिह्नित करें।
2023-11-06 08:38:02 +00:00
#### बाईपास
2023-11-06 08:38:02 +00:00
जैसा कि फ्रेम बस्टर्स जावास्क्रिप्ट होते हैं, इसलिए ब्राउज़र की सुरक्षा सेटिंग्स उनके संचालन को रोक सकती है या यहां तक कि ब्राउज़र जावास्क्रिप्ट का समर्थन भी नहीं कर सकता है। फ्रेम बस्टर्स के खिलाफ एक प्रभावी हमलावर्ती का कामरूप उपाय **HTML5 आइफ्रेम `sandbox` एट्रिब्यूट** का उपयोग करना है। जब इसे `allow-forms` या `allow-scripts` मानों के साथ सेट किया जाता है और `allow-top-navigation` मान छोड़ दिया जाता है, तो फ्रेम बस्टर स्क्रिप्ट को निष्क्रिय किया जा सकता है क्योंकि आइफ्रेम यह नहीं जांच सकता है कि यह शीर्ष विंडो है या नहीं:
```markup
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>
```
2023-11-06 08:38:02 +00:00
दोनों `allow-forms` और `allow-scripts` मान आईफ्रेम के भीतर निर्दिष्ट क्रियाएं अनुमति देते हैं, लेकिन शीर्ष-स्तरीय नेविगेशन अक्षम हो जाता है। इससे फ्रेम बस्टिंग व्यवहारों को रोका जाता है जबकि लक्षित साइट के भीतर कार्यक्षमता को अनुमति दी जाती है।
2023-11-06 08:38:02 +00:00
क्लिकजैकिंग हमले के प्रकार के आधार पर **आपको अनुमति देने की आवश्यकता हो सकती है**: `allow-same-origin` और `allow-modals` या [और भी](https://www.w3schools.com/tags/att\_iframe\_sandbox.asp)। हमला तैयार करते समय ब्राउज़र की कंसोल की जांच करें, यह आपको बता सकती है कि आपको किस अन्य व्यवहारों की अनुमति देनी चाहिए।
2022-06-06 22:28:05 +00:00
### X-Frame-Options
2023-11-06 08:38:02 +00:00
**`X-Frame-Options` HTTP प्रतिक्रिया हैडर** का उपयोग किया जा सकता है ताकि ब्राउज़र को यह दिखा सके कि क्या एक पृष्ठ को `<frame>` या `<iframe>` में रेंडर करने की अनुमति होनी चाहिए या नहीं। साइटें इसका उपयोग करके क्लिकजैकिंग हमलों से बच सकती हैं, यह सुनिश्चित करके कि **उनकी सामग्री अन्य साइटों में सम्मिलित नहीं होती है**। सभी HTML सामग्री युक्त प्रतिक्रियाओं के लिए **`X-Frame-Options`** हैडर सेट करें। संभावित मान हैं:
2023-11-06 08:38:02 +00:00
* `X-Frame-Options: deny` जो किसी भी डोमेन को सामग्री को फ्रेम करने से रोकता है _(अनुशंसित मान)_
* `X-Frame-Options: sameorigin` जो केवल **वर्तमान साइट को** सामग्री को फ्रेम करने की अनुमति देता है।
* `X-Frame-Options: allow-from https://trusted.com` जो निर्दिष्ट 'uri' को इस पृष्ठ को फ्रेम करने की अनुमति देता है।
* इसके बारे में सीमाएं देखें क्योंकि **यह ब्राउज़र इसे समर्थन नहीं करता है तो यह खुल जाएगा**
* अन्य ब्राउज़र नए **CSP frame-ancestors निर्देशिका का समर्थन करते हैं**। कुछ दोनों का समर्थन करते हैं।
2023-11-06 08:38:02 +00:00
### सामग्री सुरक्षा नीति (CSP) frame-ancestors निर्देशिका
2023-11-06 08:38:02 +00:00
**अनुशंसित क्लिकजैकिंग सुरक्षा** यह है कि एप्लिकेशन की सामग्री सुरक्षा नीति में **`frame-ancestors` निर्देशिका** को शामिल किया जाए।\
**`frame-ancestors 'none'`** निर्देशिका **X-Frame-Options `deny`** निर्देशिका के बराबर व्यवहार करती है (_कोई भी पृष्ठ को फ्रेम नहीं कर सकता_)।\
**`frame-ancestors 'self'`** निर्देशिका **X-Frame-Options `sameorigin`** निर्देशिका के बराबर व्यवहार करती है (_केवल वर्तमान साइट इसे फ्रेम कर सकती है_)।\
**`frame-ancestors trusted.com`** निर्देशिका **X-Frame-Options** `allow-from` निर्देशिका के बराबर व्यवहार करती है (_केवल विश्वसनीय साइट इसे फ्रेम कर सकती है_)।
2023-11-06 08:38:02 +00:00
निम्नलिखित CSP व्हाइटलिस्ट समान डोमेन के लिए फ्रेम करती हैं:
`Content-Security-Policy: frame-ancestors 'self';`
2023-11-06 08:38:02 +00:00
अधिक विवरण और अधिक जटिल उदाहरणों के लिए निम्नलिखित दस्तावेज़ीकरण देखें:
* [https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors)
* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors)
2023-11-06 08:38:02 +00:00
### सीमाएं <a href="#limitations" id="limitations"></a>
2023-11-06 08:38:02 +00:00
* **ब्राउज़र समर्थन:** सभी प्रमुख ब्राउज़र द्वारा अभी तक सीएसपी frame-ancestors का समर्थन नहीं किया जाता है।
* **X-Frame-Options प्राथमिकता देता है:** [CSP स्पेसिफिकेशन के अनुभाग "X-Frame-Options के साथ संबंध" में](https://w3c.github.io/webappsec/specs/content-security-policy/#frame-ancestors-and-frame-options) कहा गया है: "_यदि कोई संसाधन एक नीति के साथ वितरित किया जाता है जिसमें frame-ancestors नामक निर्देशिका शामिल है और जिसका व्यवहार "प्रयोजन" है, तो X-Frame-Options हेडर को अनदेखा किया जाना चाहिए।" लेकिन Chrome 40 और Firefox 35 frame-ancestors निर्देशिका को अनदेखा करते हैं और बजाय इसके X-Frame-Options हेडर का पालन करते हैं।
2023-11-06 08:38:02 +00:00
## संदर्भ
2023-11-06 08:38:02 +00:00
* [**https://portswigger.net/web-security/clickj