Hash Length Extension Attack
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Φανταστείτε έναν διακομιστή που υπογράφει κάποια δεδομένα προσθέτοντας ένα μυστικό σε κάποια γνωστά καθαρά δεδομένα και στη συνέχεια κατακερματίζοντας αυτά τα δεδομένα. Αν γνωρίζετε:
Το μήκος του μυστικού (αυτό μπορεί επίσης να βρεθεί με brute force από μια δεδομένη περιοχή μήκους)
Τα καθαρά δεδομένα
Ο αλγόριθμος (και είναι ευάλωτος σε αυτή την επίθεση)
Η προσθήκη είναι γνωστή
Συνήθως χρησιμοποιείται μια προεπιλεγμένη, οπότε αν πληρούνται οι άλλες 3 απαιτήσεις, αυτό ισχύει επίσης
Η προσθήκη ποικίλλει ανάλογα με το μήκος του μυστικού + δεδομένα, γι' αυτό χρειάζεται το μήκος του μυστικού
Τότε, είναι δυνατό για έναν επιτιθέμενο να προσθέσει δεδομένα και να δημιουργήσει μια έγκυρη υπογραφή για τα προηγούμενα δεδομένα + προστιθέμενα δεδομένα.
Βασικά, οι ευάλωτοι αλγόριθμοι δημιουργούν τους κατακερματισμούς πρώτα κατακερματίζοντας ένα μπλοκ δεδομένων, και στη συνέχεια, από τον προηγουμένως δημιουργημένο κατακερματισμό (κατάσταση), προσθέτουν το επόμενο μπλοκ δεδομένων και το κατακερματίζουν.
Τότε, φανταστείτε ότι το μυστικό είναι "secret" και τα δεδομένα είναι "data", το MD5 του "secretdata" είναι 6036708eba0d11f6ef52ad44e8b74d5b. Αν ένας επιτιθέμενος θέλει να προσθέσει τη συμβολοσειρά "append" μπορεί να:
Δημιουργήσει ένα MD5 από 64 "A"s
Αλλάξει την κατάσταση του προηγουμένως αρχικοποιημένου κατακερματισμού σε 6036708eba0d11f6ef52ad44e8b74d5b
Προσθέσει τη συμβολοσειρά "append"
Ολοκληρώσει τον κατακερματισμό και ο προκύπτων κατακερματισμός θα είναι έγκυρος για "secret" + "data" + "padding" + "append"
Μπορείτε να βρείτε αυτή την επίθεση καλά εξηγημένη στο https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)