Translated ['pentesting-web/race-condition.md'] to gr

This commit is contained in:
Translator 2024-08-18 15:57:35 +00:00
parent 18896c9644
commit 36a63a1f18

View file

@ -57,7 +57,7 @@
#### Υπερνίκηση Περιορισμών Ρυθμού ή Πόρων
Εάν η θέρμανση της σύνδεσης είναι αναποτελεσματική, η πρόκληση καθυστερήσεων περιορισμού ρυθμού ή πόρων στους διακομιστές ιστού σκόπιμα μέσω πλημμύρας ψεύτικων αιτημάτων μπορεί να διευκολύνει την επίθεση μοναδικού πακέτου προκαλώντας μια καθυστέρηση στην πλευρά του διακομιστή που ευνοεί τις race conditions.
Εάν η θέρμανση της σύνδεσης είναι αναποτελεσματική, η πρόκληση καθυστερήσεων περιορισμού ρυθμού ή πόρων στους διακομιστές ιστού σκόπιμα μέσω πλημμύρας ψεύτικων αιτημάτων μπορεί να διευκολύνει την επίθεση ενός πακέτου, προκαλώντας μια καθυστέρηση στην πλευρά του διακομιστή που ευνοεί τις race conditions.
## Παραδείγματα Επιθέσεων
@ -75,7 +75,7 @@ engine.queue(target.req, password, gate='race1')
Αν ο ιστότοπος δεν υποστηρίζει HTTP2 (μόνο HTTP1.1) χρησιμοποιήστε `Engine.THREADED` ή `Engine.BURP` αντί για `Engine.BURP2`.
{% endhint %}
* **Tubo Intruder - HTTP2 επίθεση μεμονωμένου πακέτου (Πολλές τελικές διαδρομές)**: Σε περίπτωση που χρειαστεί να στείλετε ένα αίτημα σε 1 τελική διαδρομή και στη συνέχεια πολλαπλά σε άλλες τελικές διαδρομές για να ενεργοποιήσετε το RCE, μπορείτε να αλλάξετε το σενάριο `race-single-packet-attack.py` με κάτι σαν:
* **Tubo Intruder - HTTP2 επίθεση μεμονωμένου πακέτου (Πολλές τελικές διευθύνσεις)**: Σε περίπτωση που χρειαστεί να στείλετε ένα αίτημα σε 1 τελική διεύθυνση και στη συνέχεια πολλαπλά σε άλλες τελικές διευθύνσεις για να ενεργοποιήσετε το RCE, μπορείτε να αλλάξετε το σενάριο `race-single-packet-attack.py` με κάτι σαν:
```python
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
@ -247,14 +247,14 @@ response = requests.get(url, verify=False)
Σημειώστε ότι αν και αυτή η βελτίωση καθιστά την επίθεση πιο αξιόπιστη σε RC που απαιτεί εκατοντάδες/χιλιάδες πακέτα να φτάσουν ταυτόχρονα, μπορεί επίσης να έχει κάποιους περιορισμούς λογισμικού. Ορισμένοι δημοφιλείς διακομιστές HTTP όπως οι Apache, Nginx και Go έχουν αυστηρή ρύθμιση `SETTINGS_MAX_CONCURRENT_STREAMS` σε 100, 128 και 250. Ωστόσο, άλλοι όπως οι NodeJS και nghttp2 το έχουν απεριόριστο.\
Αυτό σημαίνει βασικά ότι ο Apache θα εξετάσει μόνο 100 HTTP συνδέσεις από μια μοναδική TCP σύνδεση (περιορίζοντας αυτή την επίθεση RC).
Μπορείτε να βρείτε μερικά παραδείγματα χρησιμοποιώντας αυτή την τεχνική στο αποθετήριο [https://github.com/Ry0taK/first-sequence-sync/tree/main](https://github.com/Ry0taK/first-sequence-sync/tree/main).
Μπορείτε να βρείτε μερικά παραδείγματα χρησιμοποιώντας αυτή την τεχνική στο repo [https://github.com/Ry0taK/first-sequence-sync/tree/main](https://github.com/Ry0taK/first-sequence-sync/tree/main).
## Ακατέργαστο BF
Πριν από την προηγούμενη έρευνα, αυτά ήταν μερικά payloads που χρησιμοποιήθηκαν και απλώς προσπαθούσαν να στείλουν τα πακέτα όσο το δυνατόν πιο γρήγορα για να προκαλέσουν μια RC.
* **Επαναλήπτης:** Ελέγξτε τα παραδείγματα από την προηγούμενη ενότητα.
* **Εισβολέας**: Στείλτε το **αίτημα** στον **Εισβολέα**, ρυθμίστε τον **αριθμό νημάτων** σε **30** μέσα στο **μενού Επιλογών** και επιλέξτε ως payload **Null payloads** και δημιουργήστε **30.**
* **Εισβολέας**: Στείλτε το **αίτημα** στον **Εισβολέα**, ρυθμίστε τον **αριθμό νημάτων** σε **30** μέσα στο **μενού Επιλογών** και, επιλέξτε ως payload **Null payloads** και δημιουργήστε **30.**
* **Turbo Intruder**
```python
def queueRequests(target, wordlists):
@ -332,21 +332,21 @@ asyncio.run(main())
### Χρονικά Ευαίσθητες Επιθέσεις
Η ακρίβεια στο χρονοδιάγραμμα των αιτημάτων μπορεί να αποκαλύψει ευπάθειες, ειδικά όταν χρησιμοποιούνται προβλέψιμες μέθοδοι όπως οι χρονικές σφραγίδες για διακριτικά ασφαλείας. Για παράδειγμα, η δημιουργία διακριτικών επαναφοράς κωδικού πρόσβασης με βάση τις χρονικές σφραγίδες θα μπορούσε να επιτρέψει ταυτόσημα διακριτικά για ταυτόχρονες αιτήσεις.
Η ακρίβεια στο χρονοδιάγραμμα των αιτημάτων μπορεί να αποκαλύψει ευπάθειες, ειδικά όταν χρησιμοποιούνται προβλέψιμες μέθοδοι όπως οι χρονικές σφραγίδες για τα διακριτικά ασφαλείας. Για παράδειγμα, η δημιουργία διακριτικών επαναφοράς κωδικού πρόσβασης με βάση τις χρονικές σφραγίδες θα μπορούσε να επιτρέψει ταυτόσημα διακριτικά για ταυτόχρονες αιτήσεις.
**Για να Εκμεταλλευτείτε:**
* Χρησιμοποιήστε ακριβή χρονοδιάγραμμα, όπως μια επίθεση με ένα μόνο πακέτο, για να κάνετε ταυτόχρονες αιτήσεις επαναφοράς κωδικού πρόσβασης. Ταυτόσημα διακριτικά υποδηλώνουν μια ευπάθεια.
* Χρησιμοποιήστε ακριβή χρονοδιάγραμμα, όπως μια επίθεση με ένα μόνο πακέτο, για να κάνετε ταυτόχρονες αιτήσεις επαναφοράς κωδικού πρόσβασης. Τα ταυτόσημα διακριτικά υποδηλώνουν μια ευπάθεια.
**Παράδειγμα:**
* Ζητήστε δύο διακριτικά επαναφοράς κωδικού πρόσβασης ταυτόχρονα και συγκρίνετέ τα. Τα ταυτόσημα διακριτικά υποδηλώνουν ένα σφάλμα στη δημιουργία διακριτικών.
* Ζητήστε δύο διακριτικά επαναφοράς κωδικού πρόσβασης ταυτόχρονα και συγκρίνετέ τα. Τα ταυτοποιημένα διακριτικά υποδηλώνουν ένα σφάλμα στη δημιουργία διακριτικών.
**Δείτε αυτό** [**PortSwigger Lab**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities) **για να το δοκιμάσετε.**
## Μελέτες Περίπτωσης Κρυφών Υποκαταστάσεων
### Πληρωμή & προσθήκη αντικειμένου
### Πληρώστε & προσθέστε ένα αντικείμενο
Δείτε αυτό το [**PortSwigger Lab**](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-insufficient-workflow-validation) για να δείτε πώς να **πληρώσετε** σε ένα κατάστημα και να **προσθέσετε ένα επιπλέον** αντικείμενο που **δεν θα χρειαστεί να πληρώσετε γι' αυτό**.
@ -362,9 +362,9 @@ asyncio.run(main())
### Κρυφές Καταστάσεις Βάσης Δεδομένων / Παράκαμψη Επιβεβαίωσης
Εάν **χρησιμοποιηθούν 2 διαφορετικές εγγραφές** για να **προσθέσουν** **πληροφορίες** μέσα σε μια **βάση δεδομένων**, υπάρχει μια μικρή χρονική περίοδος όπου **μόνο τα πρώτα δεδομένα έχουν γραφτεί** μέσα στη βάση δεδομένων. Για παράδειγμα, όταν δημιουργείτε έναν χρήστη, το **όνομα χρήστη** και ο **κωδικός πρόσβασης** μπορεί να **γραφούν** και **στη συνέχεια το διακριτικό** για να επιβεβαιωθεί ο νεοδημιουργημένος λογαριασμός γράφεται. Αυτό σημαίνει ότι για μια μικρή χρονική περίοδο το **διακριτικό για την επιβεβαίωση ενός λογαριασμού είναι κενό**.
Εάν **χρησιμοποιηθούν 2 διαφορετικές εγγραφές** για να **προσθέσουν** **πληροφορίες** μέσα σε μια **βάση δεδομένων**, υπάρχει μια μικρή χρονική περίοδος όπου **μόνο τα πρώτα δεδομένα έχουν γραφεί** μέσα στη βάση δεδομένων. Για παράδειγμα, όταν δημιουργείτε έναν χρήστη, το **όνομα χρήστη** και ο **κωδικός πρόσβασης** μπορεί να **γραφούν** και **στη συνέχεια το διακριτικό** για να επιβεβαιωθεί ο νεοδημιουργημένος λογαριασμός γράφεται. Αυτό σημαίνει ότι για μια μικρή χρονική περίοδο το **διακριτικό για την επιβεβαίωση ενός λογαριασμού είναι κενό**.
Επομένως, **η εγγραφή ενός λογαριασμού και η αποστολή αρκετών αιτημάτων με κενό διακριτικό** (`token=` ή `token[]=` ή οποιαδήποτε άλλη παραλλαγή) για να επιβεβαιώσετε τον λογαριασμό αμέσως θα μπορούσε να επιτρέψει την **επιβεβαίωση ενός λογαριασμού** όπου δεν ελέγχετε το email.
Επομένως, **η εγγραφή ενός λογαριασμού και η αποστολή αρκετών αιτημάτων με ένα κενό διακριτικό** (`token=` ή `token[]=` ή οποιαδήποτε άλλη παραλλαγή) για να επιβεβαιώσετε τον λογαριασμό αμέσως θα μπορούσε να επιτρέψει την **επιβεβαίωση ενός λογαριασμού** όπου δεν ελέγχετε το email.
**Δείτε αυτό** [**PortSwigger Lab**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-partial-construction) **για να το δοκιμάσετε.**
@ -402,6 +402,7 @@ session['enforce_mfa'] = True
* [https://hackerone.com/reports/55140](https://hackerone.com/reports/55140)
* [https://portswigger.net/research/smashing-the-state-machine](https://portswigger.net/research/smashing-the-state-machine)
* [https://portswigger.net/web-security/race-conditions](https://portswigger.net/web-security/race-conditions)
* [https://flatt.tech/research/posts/beyond-the-limit-expanding-single-packet-race-condition-with-first-sequence-sync/](https://flatt.tech/research/posts/beyond-the-limit-expanding-single-packet-race-condition-with-first-sequence-sync/)
{% hint style="success" %}
Learn & practice AWS Hacking:<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">\