Print Stack Canary

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Μεγέθυνση εκτυπωμένου stack

Φανταστείτε μια κατάσταση όπου ένα ευάλωτο πρόγραμμα σε σχέση με την υπερχείλιση του stack μπορεί να εκτελέσει μια συνάρτηση puts που δείχνει σε μέρος της υπερχείλισης του stack. Ο επιτιθέμενος γνωρίζει ότι το πρώτο byte του canary είναι ένα μηδενικό byte (\x00) και τα υπόλοιπα bytes του canary είναι τυχαία bytes. Στη συνέχεια, ο επιτιθέμενος μπορεί να δημιουργήσει μια υπερχείλιση που αντικαθιστά το stack μέχρι το πρώτο byte του canary.

Στη συνέχεια, ο επιτιθέμενος καλεί τη λειτουργία puts στη μέση του φορτίου, η οποία θα εκτυπώσει ολόκληρο το canary (εκτός από το πρώτο μηδενικό byte).

Με αυτές τις πληροφορίες ο επιτιθέμενος μπορεί να σχεδιάσει και να στείλει μια νέα επίθεση γνωρίζοντας το canary (στην ίδια συνεδρία προγράμματος).

Φυσικά, αυτή η τακτική είναι πολύ περιορισμένη, καθώς ο επιτιθέμενος πρέπει να μπορεί να εκτυπώσει το περιεχόμενο του φορτίου του για να εξαγάγει το canary και στη συνέχεια να μπορεί να δημιουργήσει ένα νέο φορτίο (στην ίδια συνεδρία προγράμματος) και να στείλει την πραγματική υπερχείλιση του buffer.

Παραδείγματα CTF:

  • 64 bit, ενεργοποιημένο ASLR αλλά χωρίς PIE, το πρώτο βήμα είναι να γεμίσετε μια υπερχείλιση μέχρι το byte 0x00 του canary και στη συνέχεια να καλέσετε την puts και να διαρρεύσετε το canary. Με το canary δημιουργείται ένα ROP gadget για να καλέσει την puts και να διαρρεύσει τη διεύθυνση της puts από το GOT και ένα ROP gadget για να καλέσει system('/bin/sh')

  • 32 bit, ARM, χωρίς relro, canary, nx, χωρίς pie. Υπερχείλιση με κλήση στην puts για να διαρρεύσει το canary + ret2lib καλώντας το system με ένα ROP chain για να προκαλέσει το pop r0 (arg /bin/sh) και pc (διεύθυνση του system)

Αυθαίρετη Ανάγνωση

Με μια αυθαίρετη ανάγνωση όπως αυτή που παρέχεται από τις format strings είναι πιθανό να διαρρεύσει το canary. Ελέγξτε αυτό το παράδειγμα: https://ir0nstone.gitbook.io/notes/types/stack/canaries και μπορείτε να διαβάσετε για την κατάχρηση των format strings για την ανάγνωση αυθαίρετων διευθύνσεων μνήμης στο:

pageFormat Strings
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated