ΚΕΦΑΛΑΙΟ 2
Buffer Overflow Exploits

 

2.1 Γενικά

2.2 Η μοναδικότητα ενός Β.Ο.Ε

2.2 Τα βήματα για να χτιστεί ένα Buffer Overflow

2.3 Ανακαλύπτοντας το Buffer προς εκμετάλλευση.

2.3.1 Η αδυναμία των DLL

2.3.2 Η αδυναμία της stdio.h

2.3.3 Συμπέρασμα

2.4 Ο Εντοπισμός της RET.

2.4.1 Πια πρέπει να είναι η RET

2.4.2 Που πρέπει να μπει η RET μέσα στο Β.Ο.Ε String

2.5 O Σχεδιασμός του Shell Code

2.6 Το περιεχόμενο του Sledge

2.6.1 Γενικά

2.6.2 Πότε υπάρχει ανάγκη για το Sledge

2.6.3 Όταν το Sledge χρειαστεί

2.7 Ειδικές συνθήκες που πρέπει να αντιμετωπίσει το BOE

2.7.1 Όταν το Buffer είναι μικρό

2.7.2 Παράκαμψη Φίλτρων της εφαρμογής

2.8 Buffer Overflow Exploits στον σωρό(Heap) και όχι στην στοίβα(Stack)

2.8.1 Γενικά

2.8.1 H γενική ιδέα του Heap Based Β.Ο.Ε

2.8.1.1 Η βασική δυσκολία

2.8.1.2 Η βασικές γνώσείς για τα Heap Based ΒΟΕ

2.8.1.3 Περιπτώσεις επιτυχίας Ηeap BOE

2.8.2 Heap Based Β.Ο.Ε που αλλάζουν ένα Pointer προς συνάρτηση με σκοπό να εκτελεστεί αυθαίρετος(arbitrary) κώδικας.

2.8.2.1 Η χρησιμότητα του Pointer προς συνάρτηση

2.8.2.2 Παράδειγμα BOE που στρέφει έναν Pointer προς συνάρτηση προς τον ShellCode

2.9 Διαφορά Local και Remote exploit

2.9.1 Local(τοπικά) BOE

2.9.2 Remote(απομακρυσμένα) BOE

2.10 Σύνοψη - Παρατηρήσεις

Copyright © 2004
Powered by Internet Systematics Lab