<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
*Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να**κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Ελάτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή τη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
Εγγραφείτε στον [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) διακομιστή γιανα επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Το**Cross-Site Request Forgery (CSRF)** είναι ένας τύπος ευπάθειας ασφαλείας που βρίσκεται σε εφαρμογές ιστού. Επιτρέπει στους επιτιθέμενους να εκτελούν ενέργειες εκ μέρους ανυποψίαστων χρηστών εκμεταλλευόμενοι τις πιστοποιημένες συνεδρίες τους. Η επίθεση εκτελείται όταν ένας χρήστης, που είναι συνδεδεμένος σε μια πλατφόρμα θύματος, επισκέπτεται ένα κακόβουλο site. Αυτό το site στη συνέχεια ενεργοποιεί αιτήσεις προς τον λογαριασμό του θύματος μέσω μεθόδων όπως η εκτέλεση JavaScript, η υποβολή φορμών ή η ανάκτηση εικόνων.
1.**Αναγνώριση μιας Πολύτιμης Ενέργειας**: Ο επιτιθέμενος πρέπει να βρει μια ενέργεια αξίας για εκμετάλλευση, όπως η αλλαγή του κωδικού πρόσβασης του χρήστη, του email ή η ανύψωση προνομίων.
2.**Διαχείριση Συνεδρίας**: Η συνεδρία του χρήστη πρέπει να διαχειρίζεται μόνο μέσω cookies ή της κεφαλίδας HTTP Basic Authentication, καθώς άλλες κεφαλίδες δεν μπορούν να χειριστούν γι' αυτόν τον σκοπό.
Μπορείτε να**καταγράψετε το αίτημα στο Burp** και να ελέγξετε τις προστασίες CSRF και γιανα δοκιμάσετε από τον περιηγητή μπορείτε να κάνετε κλικ στο **Αντιγραφή ως fetch** και να ελέγξετε το αίτημα:
* [**Cookies με ίδια προέλευση (SameSite cookies)**](hacking-with-cookies/#samesite): Αυτή η ιδιότητα εμποδίζει τον περιηγητή να στέλνει cookies μαζί με αιτήσεις από διαφορετικές τοποθεσίες. [Περισσότερα για τα Cookies με ίδια προέλευση](hacking-with-cookies/#samesite).
* [**Κοινή χρήση πόρων διαφορετικής προέλευσης (Cross-origin resource sharing)**](cors-bypass.md): Η πολιτική CORS της ιστοσελίδας θύματος μπορεί να επηρεάσει την εφικτότητα της επίθεσης, ειδικά αν η επίθεση απαιτεί την ανάγνωση της απάντησης από την ιστοσελίδα θύματος. [Μάθετε για την παράκαμψη CORS](cors-bypass.md).
* **Επαλήθευση Χρήστη**: Η ζήτηση του κωδικού πρόσβασης του χρήστη ή η επίλυση ενός captcha μπορεί να επιβεβαιώσει την πρόθεση του χρήστη.
* **Έλεγχος Κεφαλίδων Referrer ή Origin**: Η επικύρωση αυτών των κεφαλίδων μπορεί να βοηθήσει στη διασφάλιση ότι οι αιτήσεις προέρχονται από αξιόπιστες πηγές. Ωστόσο, η προσεκτική δημιουργία των διευθύνσεων URL μπορεί να παρακάμψει κακά υλοποιημένους ελέγχους, όπως:
* Χρήση `http://mal.net?orig=http://example.com` (η διεύθυνση URL τελειώνει με την αξιόπιστη διεύθυνση URL)
* Χρήση `http://example.com.mal.net` (η διεύθυνση URL ξεκινά με την αξιόπιστη διεύθυνση URL)
* **Τροποποίηση Ονομάτων Παραμέτρων**: Η τροποποίηση των ονομάτων των παραμέτρων σε αιτήσεις POST ή GET μπορεί να βοηθήσει στην πρόληψη αυτοματοποιημένων επιθέσεων.
* **Διακριτικά CSRF Tokens**: Η ενσωμάτωση ενός μοναδικού CSRF token σε κάθε συνεδρία και η απαίτηση αυτού του token σε μετέπειτα αιτήσεις μπορεί να μειώσει σημαντικά τον κίνδυνο CSRF. Η αποτελεσματικότητα του token μπορεί να ενισχυθεί με την επιβολή του CORS.
Ίσως η φόρμα που θέλετε να καταχωρήσετε είναι προετοιμασμένη για αποστολή **POST αιτήματος με ένα CSRF token αλλά**, πρέπει να**ελέγξετε**αν ένα **GET** είναι επίσης **έγκυρο** και αν όταν στέλνετε ένα GET αίτημα το **CSRF token εξακριβώνεται ακόμα**.
Σημειώστε ότι αν το **csrf token σχετίζεται με το session cookie αυτή η επίθεση δεν θα λειτουργήσει** επειδή θα χρειαστεί να ορίσετε στο θύμα το session σας, και συνεπώς θα επιτεθείτε στον εαυτό σας.
Σύμφωνα με [**αυτό**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), προκειμένου να**αποφευχθούν οι προερωτήσεις** χρησιμοποιώντας τη μέθοδο **POST** αυτές είναι οι επιτρεπόμενες τιμές Content-Type:
Ωστόσο, σημειώστε ότι η **λογική των διακομιστών μπορεί να ποικίλει** ανάλογα με το **Content-Type** που χρησιμοποιείται, επομένως θα πρέπει να δοκιμάσετε τις αναφερόμενες τιμές και άλλες όπως **`application/json`**_**,**_**`text/xml`**, **`application/xml`**_._
Κατά την προσπάθεια αποστολής δεδομένων JSON μέσω ενός αιτήματος POST, η χρήση του `Content-Type: application/json` σε ένα φόρμα HTML δεν είναι άμεσα δυνατή. Επίσης, η χρήση του `XMLHttpRequest`για την αποστολή αυτού του τύπου περιεχομένου ενεργοποιεί ένα αίτημα προελέγχου. Ωστόσο, υπάρχουν στρατηγικές για πιθανή παράκαμψη αυτού του περιορισμού και έλεγχος εάν ο διακομιστής επεξεργάζεται τα δεδομένα JSON ανεξαρτήτως του Content-Type:
1.**Χρήση Εναλλακτικών Τύπων Περιεχομένου**: Χρησιμοποιήστε `Content-Type: text/plain` ή `Content-Type: application/x-www-form-urlencoded` ορίζοντας `enctype="text/plain"` στη φόρμα. Με αυτήν την προσέγγιση ελέγχεται εάν ο διακομιστής χρησιμοποιεί τα δεδομένα ανεξάρτητα από το Content-Type.
2.**Τροποποίηση Τύπου Περιεχομένου**: Για να αποφύγετε ένα αίτημα προελέγχου ενώ εξασφαλίζετε ότι ο διακομιστής αναγνωρίζει το περιεχόμενο ως JSON, μπορείτε να στείλετε τα δεδομένα με `Content-Type: text/plain; application/json`. Αυτό δεν ενεργοποιεί ένα αίτημα προελέγχου αλλά ενδέχεται να επεξεργαστεί σωστά από τον διακομιστή αν είναι ρυθμισμένος να δέχεται `application/json`.
3.**Χρήση Αρχείου Flash SWF**: Μια λιγότερο συνηθισμένη αλλά εφικτή μέθοδος περιλαμβάνει τη χρήση ενός αρχείου Flash SWF για την παράκαμψη τέτοιων περιορισμών. Για μια λεπτομερή κατανόηση αυτής της τεχνικής, ανατρέξτε σε [αυτήν την ανάρτηση](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
Οι εφαρμογές μπορεί να επικυρώνουν την κεφαλίδα 'Referer' μόνο όταν είναι παρούσα. Για να αποτρέψετε ένα πρόγραμμα περιήγησης από το να στείλει αυτήν την κεφαλίδα, μπορεί να χρησιμοποιηθεί το ακόλουθο ετικέτα meta HTML:
Στο πρώτο μέρος του [**αυτού του CTF writeup**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) εξηγείται ότι [ο πηγαίος κώδικας του Oak](https://github.com/oakserver/oak/blob/main/router.ts#L281), ένας δρομολογητής είναι ρυθμισμένος να**χειρίζεται τα αιτήματα HEAD ως GET αιτήματα** χωρίς σώμα απάντησης - μια συνηθισμένη παράκαμψη που δεν είναι μοναδική για το Oak. Αντί για έναν συγκεκριμένο χειριστή που ασχολείται με τα αιτήματα HEAD, απλά **δίνονται στον χειριστή GET αλλά η εφαρμογή απλά αφαιρεί το σώμα απάντησης**.
Αν ένα **CSRF token** χρησιμοποιείται ως **άμυνα** μπορείτε να προσπαθήσετε να το **εξάγετε** καταχρώντας μια [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens) ευπάθεια ή μια [**Dangling Markup**](dangling-markup-html-scriptless-injection/) ευπάθεια.
xh.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); //to send proper header info (optional, but good to have as it may sometimes not work without this)
Ο κώδικας μπορεί να χρησιμοποιηθεί για Βίαιη Επίθεση σε ένα φόρμα σύνδεσης χρησιμοποιώντας ένα CSRF τεκμήριο (Χρησιμοποιεί επίσης την κεφαλίδα X-Forwarded-For γιανα προσπαθήσει να παρακάμψει μια πιθανή μαύρη λίστα IP):
Συμμετέχετε στον [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) διακομιστή γιανα επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
*Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να**κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετέχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή την [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**