Translated ['src/pentesting-web/clickjacking.md'] to hi

This commit is contained in:
Translator 2025-01-06 10:28:46 +00:00
parent ef0564afec
commit 55b8b1632e

View File

@ -12,10 +12,10 @@
### Populate form with Drag\&Drop
यदि आपको उपयोगकर्ता से **एक फॉर्म भरवाने** की आवश्यकता है लेकिन आप सीधे उससे कुछ विशिष्ट जानकारी (जैसे ईमेल और या विशिष्ट पासवर्ड जो आप जानते हैं) लिखने के लिए नहीं कहना चाहते, तो आप बस उससे कुछ **Drag\&Drop** करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे कि [**इस उदाहरण**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) में।
यदि आपको उपयोगकर्ता से **एक फॉर्म भरवाने** की आवश्यकता है लेकिन आप सीधे उससे कुछ विशिष्ट जानकारी (जैसे ईमेल और या विशिष्ट पासवर्ड जो आप जानते हैं) लिखने के लिए नहीं कहना चाहते, तो आप बस उससे **Drag\&Drop** करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे कि [**इस उदाहरण**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) में।
### Basic Payload
```markup
```css
<style>
iframe {
position:relative;
@ -35,7 +35,7 @@ z-index: 1;
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
```
### मल्टीस्टेप पेलोड
```markup
```css
<style>
iframe {
position:relative;
@ -59,7 +59,7 @@ left:210px;
<iframe src="https://vulnerable.net/account"></iframe>
```
### Drag\&Drop + Click payload
```markup
```css
<html>
<head>
<style>
@ -89,25 +89,34 @@ background: #F00;
```
### XSS + Clickjacking
यदि आपने एक **XSS हमला पहचाना है जो उपयोगकर्ता को** किसी तत्व पर **क्लिक करने की आवश्यकता है** ताकि **XSS को ट्रिगर** किया जा सके और पृष्ठ **क्लिकजैकिंग के लिए संवेदनशील** है, तो आप इसका दुरुपयोग करके उपयोगकर्ता को बटन/लिंक पर क्लिक करने के लिए धोखा दे सकते हैं।\
यदि आपने एक **XSS हमले की पहचान की है जो उपयोगकर्ता को** किसी तत्व पर **क्लिक करने की आवश्यकता है** ताकि **XSS को ट्रिगर** किया जा सके और पृष्ठ **क्लिकजैकिंग के लिए संवेदनशील** है, तो आप इसका दुरुपयोग कर हैं ताकि उपयोगकर्ता को बटन/लिंक पर क्लिक करने के लिए धोखा दिया जा सके।\
उदाहरण:\
आपने खाते के कुछ निजी विवरणों में एक **स्वयं XSS** पाया (विवरण जो **केवल आप सेट और पढ़ सकते हैं**)। इन विवरणों को सेट करने के लिए **फॉर्म** वाला पृष्ठ **क्लिकजैकिंग** के लिए **संवेदनशील** है और आप **GET पैरामीटर** के साथ **फॉर्म** को **पूर्व-जनित** कर सकते हैं।\
एक हमलावर उस पृष्ठ के लिए एक **क्लिकजैकिंग** हमला तैयार कर सकता है **फॉर्म** को **XSS पेलोड** के साथ **पूर्व-जनित** करके और **उपयोगकर्ता** को फॉर्म को **सबमिट** करने के लिए **धोखा** देकर। तो, **जब फॉर्म सबमिट किया जाता है** और मानों को संशोधित किया जाता है, तो **उपयोगकर्ता XSS को निष्पादित करेगा**
आपने खाते के कुछ निजी विवरणों में एक **स्वयं XSS** पाया (विवरण जो **केवल आप सेट और पढ़ सकते हैं**)। इन विवरणों को सेट करने के लिए **फॉर्म** वाला पृष्ठ **क्लिकजैकिंग के लिए संवेदनशील** है और आप **GET पैरामीटर** के साथ **फॉर्म** को **पूर्व-जनित** कर सकते हैं।\
एक हमलावर उस पृष्ठ के लिए एक **क्लिकजैकिंग** हमले की तैयारी कर सकता है **फॉर्म** को **XSS पेलोड** के साथ **पूर्व-जनित** करके और **उपयोगकर्ता** को **फॉर्म सबमिट** करने के लिए **धोखा** देकर। तो, **जब फॉर्म सबमिट किया जाता है** और मानों को संशोधित किया जाता है, तो **उपयोगकर्ता XSS को निष्पादित करेगा**
## Clickjacking को कम करने की रणनीतियाँ
### DoubleClickjacking
### क्लाइंट-साइड डिफेंस
पहले [इस पोस्ट में समझाया गया](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), यह तकनीक पीड़ित से एक कस्टम पृष्ठ के बटन पर डबल क्लिक करने के लिए कहेगी जो एक विशिष्ट स्थान पर रखा गया है, और माउसडाउन और ऑनक्लिक घटनाओं के बीच समय के अंतर का उपयोग करके पीड़ित पृष्ठ को डबल क्लिक के दौरान लोड करेगी ताकि **पीड़ित वास्तव में पीड़ित पृष्ठ में एक वैध बटन पर क्लिक करे**
एक उदाहरण इस वीडियो में देखा जा सकता है: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
> [!WARNING]
> यह तकनीक उपयोगकर्ता को पीड़ित पृष्ठ में 1 स्थान पर क्लिक करने के लिए धोखा देने की अनुमति देती है, जिससे क्लिकजैकिंग के खिलाफ हर सुरक्षा को बायपास किया जा सकता है। इसलिए हमलावर को **संवेदनशील क्रियाओं को खोजने की आवश्यकता है जो केवल 1 क्लिक के साथ की जा सकती हैं, जैसे OAuth प्रॉम्प्ट्स जो अनुमतियों को स्वीकार करते हैं**
## Strategies to Mitigate Clickjacking
### Client-Side Defenses
क्लाइंट साइड पर निष्पादित स्क्रिप्ट्स क्लिकजैकिंग को रोकने के लिए क्रियाएँ कर सकती हैं:
- सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है।
- सभी फ्रेम को दृश्य बनाना।
- अदृश्य फ्रेम पर क्लिक करने से रोकना।
- सभी फ्रेम को दृश्यमान बनाना।
- अदृश्य फ्रेम पर क्लिक क रोकना।
- संभावित क्लिकजैकिंग प्रयासों के लिए उपयोगकर्ताओं का पता लगाना और चेतावनी देना।
हालांकि, ये फ्रेम-बस्टिंग स्क्रिप्ट्स को दरकिनार किया जा सकता है:
हालांकि, ये फ्रेम-बस्टिंग स्क्रिप्ट्स को बायपास किया जा सकता है:
- **ब्राउज़रों की सुरक्षा सेटिंग्स:** कुछ ब्राउज़र अपनी सुरक्षा सेटिंग्स या JavaScript समर्थन की कमी के आधार पर इन स्क्रिप्ट्स को ब्लॉक कर सकते हैं।
- **ब्राउज़रों की सुरक्षा सेटिंग्स:** कुछ ब्राउज़र अपनी सुरक्षा सेटिंग्स या जावास्क्रिप्ट समर्थन की कमी के आधार पर इन स्क्रिप्ट्स को ब्लॉक कर सकते हैं।
- **HTML5 iframe `sandbox` विशेषता:** एक हमलावर `allow-forms` या `allow-scripts` मानों के साथ `sandbox` विशेषता सेट करके फ्रेम बस्टर स्क्रिप्ट्स को निष्क्रिय कर सकता है बिना `allow-top-navigation` के। यह iframe को यह सत्यापित करने से रोकता है कि क्या यह शीर्ष विंडो है, उदाहरण के लिए,
```html
<iframe
@ -115,13 +124,13 @@ id="victim_website"
src="https://victim-website.com"
sandbox="allow-forms allow-scripts"></iframe>
```
`allow-forms` और `allow-scripts` मान iframe के भीतर क्रियाओं को सक्षम करते हैं जबकि शीर्ष स्तर की नेविगेशन को निष्क्रिय करते हैं। लक्षित साइट की इच्छित कार्यक्षमता सुनिश्चित करने के लिए, हमलों के प्रकार के आधार पर `allow-same-origin` और `allow-modals` जैसे अतिरिक्त अनुमतियों की आवश्यकता हो सकती है। ब्राउज़र कंसोल संदेश यह मार्गदर्शन कर सकते हैं कि कौन सी अनुमतियाँ अनुमति दी जानी चाहिए।
`allow-forms` और `allow-scripts` मान iframe के भीतर क्रियाओं को सक्षम करते हैं जबकि शीर्ष स्तर की नेविगेशन को निष्क्रिय करते हैं। लक्षित साइट की इच्छित कार्यक्षमता सुनिश्चित करने के लिए, हमलों के प्रकार के आधार पर `allow-same-origin` और `allow-modals` जैसे अतिरिक्त अनुमतियों की आवश्यकता हो सकती है। ब्राउज़र कंसोल संदेश यह मार्गदर्शन कर सकते हैं कि कौन सी अनुमतियाँ दी जानी चाहिए।
### सर्वर-साइड रक्षा
#### X-Frame-Options
**`X-Frame-Options` HTTP प्रतिक्रिया हेडर** ब्राउज़रों को `<frame>` या `<iframe>` में पृष्ठ को रेंडर करने की वैधता के बारे में सूचित करता है, जिससे Clickjacking को रोकने में मदद मिलती है:
**`X-Frame-Options` HTTP प्रतिक्रिया हेडर** ब्राउज़रों को `<frame>` या `<iframe>` में एक पृष्ठ को रेंडर करने की वैधता के बारे में सूचित करता है, जिससे Clickjacking को रोकने में मदद मिलती है:
- `X-Frame-Options: deny` - कोई डोमेन सामग्री को फ्रेम नहीं कर सकता।
- `X-Frame-Options: sameorigin` - केवल वर्तमान साइट सामग्री को फ्रेम कर सकती है।
@ -130,17 +139,17 @@ sandbox="allow-forms allow-scripts"></iframe>
#### Content Security Policy (CSP) frame-ancestors निर्देश
**CSP में `frame-ancestors` निर्देश** Clickjacking सुरक्षा के लिए अनुशंसित विधि है:
**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 केवल उसी डोमेन से फ्रेमिंग की अनुमति देता है:
उदाहरण के लिए, निम्न 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) में पाए जा सकते हैं।
अधिक विवरण और जटिल उदाहरण [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`
@ -170,9 +179,9 @@ Content-Security-Policy: child-src 'self' https://trusted-website.com;
- फ़ॉलबैक व्यवहार: यदि frame-src अनुपस्थित है, तो फ़्रेम के लिए child-src को फ़ॉलबैक के रूप में उपयोग किया जाता है। यदि दोनों अनुपस्थित हैं, तो default-src का उपयोग किया जाता है।
- सख्त स्रोत परिभाषा: शोषण को रोकने के लिए निर्देशों में केवल विश्वसनीय स्रोतों को शामिल करें।
#### जावास्क्रिप्ट फ़्रेम-ब्रेकिंग स्क्रिप्ट्स
#### JavaScript फ़्रेम-ब्रेकिंग स्क्रिप्ट्स
हालांकि यह पूरी तरह से सुरक्षित नहीं है, जावास्क्रिप्ट-आधारित फ़्रेम-बस्टिंग स्क्रिप्ट्स का उपयोग एक वेब पृष्ठ को फ़्रेम किए जाने से रोकने के लिए किया जा सकता है। उदाहरण:
हालांकि यह पूरी तरह से सुरक्षित नहीं है, JavaScript-आधारित फ़्रेम-बस्टिंग स्क्रिप्ट्स का उपयोग एक वेब पृष्ठ को फ़्रेम में आने से रोकने के लिए किया जा सकता है। उदाहरण:
```javascript
if (top !== self) {
top.location = self.location