# Clickjacking {{#include ../banners/hacktricks-training.md}} ## What is Clickjacking एक clickjacking हमले में, एक **उपयोगकर्ता** को एक **तत्व** पर **क्लिक** करने के लिए **धोखा** दिया जाता है जो या तो **अदृश्य** होता है या किसी अन्य तत्व के रूप में छिपा होता है। यह हेरफेर उपयोगकर्ता के लिए अनपेक्षित परिणामों का कारण बन सकता है, जैसे कि मैलवेयर का डाउनलोड होना, दुर्भावनापूर्ण वेब पृष्ठों पर पुनर्निर्देशन, क्रेडेंशियल्स या संवेदनशील जानकारी का प्रदान करना, पैसे का हस्तांतरण, या उत्पादों की ऑनलाइन खरीदारी। ### Prepopulate forms trick कभी-कभी **पृष्ठ लोड करते समय GET पैरामीटर का उपयोग करके एक फॉर्म के फ़ील्ड के मान को भरना संभव होता है**। एक हमलावर इस व्यवहार का दुरुपयोग करके एक फॉर्म को मनमाने डेटा से भर सकता है और clickjacking पेलोड भेज सकता है ताकि उपयोगकर्ता बटन Submit दबाए। ### Populate form with Drag\&Drop यदि आपको उपयोगकर्ता से **एक फॉर्म भरवाने** की आवश्यकता है लेकिन आप सीधे उससे कुछ विशिष्ट जानकारी (जैसे ईमेल और या विशिष्ट पासवर्ड जो आप जानते हैं) लिखने के लिए नहीं कहना चाहते, तो आप बस उससे **Drag\&Drop** करने के लिए कह सकते हैं जो आपके नियंत्रित डेटा को लिखेगा जैसे कि [**इस उदाहरण**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) में। ### Basic Payload ```css
Click me
``` ### मल्टीस्टेप पेलोड ```css
Click me first
Click me next
``` ### Drag\&Drop + Click payload ```css
.
1. Click and press delete button
3.Click me

2.DRAG ME TO THE RED BOX

``` ### XSS + Clickjacking यदि आपने एक **XSS हमले की पहचान की है जो उपयोगकर्ता को** किसी तत्व पर **क्लिक करने की आवश्यकता है** ताकि **XSS को ट्रिगर** किया जा सके और पृष्ठ **क्लिकजैकिंग के लिए संवेदनशील** है, तो आप इसका दुरुपयोग कर सकते हैं ताकि उपयोगकर्ता को बटन/लिंक पर क्लिक करने के लिए धोखा दिया जा सके।\ उदाहरण:\ आपने खाते के कुछ निजी विवरणों में एक **स्वयं XSS** पाया (विवरण जो **केवल आप सेट और पढ़ सकते हैं**)। इन विवरणों को सेट करने के लिए **फॉर्म** वाला पृष्ठ **क्लिकजैकिंग के लिए संवेदनशील** है और आप **GET पैरामीटर** के साथ **फॉर्म** को **पूर्व-जनित** कर सकते हैं।\ एक हमलावर उस पृष्ठ के लिए एक **क्लिकजैकिंग** हमले की तैयारी कर सकता है **फॉर्म** को **XSS पेलोड** के साथ **पूर्व-जनित** करके और **उपयोगकर्ता** को फॉर्म को **सबमिट** करने के लिए **धोखा** देकर। तो, **जब फॉर्म सबमिट किया जाता है** और मानों को संशोधित किया जाता है, तो **उपयोगकर्ता XSS को निष्पादित करेगा**। ### 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) एक कोड उदाहरण [इस पृष्ठ](https://www.paulosyibelo.com/2024/12/doubleclickjacking-what.html) पर पाया जा सकता है। > [!WARNING] > यह तकनीक उपयोगकर्ता को पीड़ित पृष्ठ में 1 स्थान पर क्लिक करने के लिए धोखा देने की अनुमति देती है, जिससे क्लिकजैकिंग के खिलाफ हर सुरक्षा को बायपास किया जा सकता है। इसलिए हमलावर को **संवेदनशील क्रियाओं को खोजने की आवश्यकता है जो केवल 1 क्लिक के साथ की जा सकती हैं, जैसे OAuth प्रम्प्ट जो अनुमतियों को स्वीकार करते हैं**। ## Strategies to Mitigate Clickjacking ### Client-Side Defenses क्लाइंट साइड पर निष्पादित स्क्रिप्ट क्लिकजैकिंग को रोकने के लिए क्रियाएँ कर सकती हैं: - सुनिश्चित करना कि एप्लिकेशन विंडो मुख्य या शीर्ष विंडो है। - सभी फ्रेम को दृश्य बनाना। - अदृश्य फ्रेम पर क्लिक को रोकना। - संभावित क्लिकजैकिंग प्रयासों के लिए उपयोगकर्ताओं का पता लगाना और चेतावनी देना। हालांकि, ये फ्रेम-बस्टिंग स्क्रिप्ट्स को बायपास किया जा सकता है: - **ब्राउज़रों की सुरक्षा सेटिंग्स:** कुछ ब्राउज़र अपनी सुरक्षा सेटिंग्स या जावास्क्रिप्ट समर्थन की कमी के आधार पर इन स्क्रिप्ट्स को ब्लॉक कर सकते हैं। - **HTML5 iframe `sandbox` विशेषता:** एक हमलावर `allow-forms` या `allow-scripts` मानों के साथ `sandbox` विशेषता सेट करके फ्रेम बस्टर स्क्रिप्ट्स को निष्क्रिय कर सकता है बिना `allow-top-navigation` के। यह iframe को यह सत्यापित करने से रोकता है कि क्या यह शीर्ष विंडो है, उदाहरण के लिए, ```html ``` `allow-forms` और `allow-scripts` मान iframe के भीतर क्रियाओं को सक्षम करते हैं जबकि शीर्ष स्तर की नेविगेशन को निष्क्रिय करते हैं। लक्षित साइट की इच्छित कार्यक्षमता सुनिश्चित करने के लिए, हमलों के प्रकार के आधार पर `allow-same-origin` और `allow-modals` जैसे अतिरिक्त अनुमतियों की आवश्यकता हो सकती है। ब्राउज़र कंसोल संदेश यह मार्गदर्शन कर सकते हैं कि कौन सी अनुमतियाँ दी जानी चाहिए। ### सर्वर-साइड रक्षा #### X-Frame-Options **`X-Frame-Options` HTTP प्रतिक्रिया हेडर** ब्राउज़रों को `` या `