News

News

Κυριακή
Ιούνιος, 4

Πολεμικά Παίγνια: OTW Natas #13

Φτάσαμε στο 13ο επίπεδο του πολεμικού παιγνίου Natas της ιστοσελίδας OverTheWire. Τα επίπεδα βασίζονται έντονα στις γνώσεις που έχουμε αποκτήσει από τα προηγούμενα, άρα είναι καλύτερο να τα λύνετε σειριακά. Προσοχή! Όπως αναφέρουμε σε κάθε άρθρο αυτής της κατηγορίας, το πιο σημαντικό είναι να προσπαθήσετε μόνοι σας να λύσετε το κάθε επίπεδο και όχι απλώς να διαβάσετε μία λύση όπως η δική μας. Παρακάτω είναι οι σύνδεσμοι για τις λύσεις μας για όλα τα επίπεδα μέχρι αυτό το σημείο, και ακριβώς από κάτω θα παρουσιάσουμε αυτό, το 13ο επίπεδο.

Πηγή: N0where.net

Όπως κάθε φορά, συνδεόμαστε στο επόμενο επίπεδο με τα στοιχεία πρόσβασης που αποκτήσαμε από το προηγούμενο. Περιέργως, η σελίδα φαντάζει απόλυτα ίδια με αυτή του επιπέδου 12. Είναι μία φόρμα για ανέβασμα εικόνων και φωτογραφιών στον εξυπηρετητή. Βλέπετε τη σελίδα του επιπέδου 13 στην επόμενη εικόνα.

Πηγή: OverTheWire.org

Που είναι όμως η διαφορά; Εάν πατήσουμε το σύνδεσμο «View sourcecode» (προβολή πηγαίου κώδικα), θα δούμε τον κώδικα της σελίδας που εκτελεί ο εξυπηρετητής. Ο κώδικας είναι γραμμένος σε γλώσσα προγραμματισμού PHP και είναι σχεδόν ολόιδιος με αυτόν από το προηγούμενο επίπεδο. Η μοναδική διαφορά του είναι η προσθήκη του ελέγχου που βλέπετε μέσα στο κόκκινο πλαίσιο παρακάτω.

Πηγή: OverTheWire.org (επεξεργασμένη)

Με απλά λόγια αυτό που γράφει το παραπάνω επιπρόσθετος έλεγχος, είναι ότι αν το αρχείο που ανεβάζουμε περάσει από τη συνάρτηση exif_imagetype() και επιστρέψει τιμή «FALSE», τότε δε θα μας αφήσει να ανεβάσουμε το αρχείο μας αλλά θα τυπώσει το μήνυμα «File is not an image» (Το αρχείο δεν είναι εικόνα). Από τη πλευρά του επιτιθέμενου, πρέπει να βρούμε ένα τρόπο να παρακάμψουμε τον έλεγχο της συνάρτησης exif_imagetype(). Αλλά πως θα το κάνουμε αυτό;

Πηγή: PHP.net

Αρχικά διαβάζουμε το εγχειρίδιο της συνάρτησης exif_imagetype() για να καταλάβουμε τι ακριβώς ελέγχους κάνει στο αρχείο μας. Η περιγραφή της λέει «Η συνάρτηση exif_imagetype() διαβάζει τα πρώτα bytes μίας εικόνας και ελέγχει το τύπο της». Μία σύντομη αναζήτηση σε αυτό μας οδηγεί σε κάτι που ονομάζεται «Μαγικός Αριθμός» στο προγραμματισμό. Όπως διαβάζουμε «είναι ένας σταθερός αριθμός ή κείμενο που χρησιμοποιείται για να αναγνωρίζει τη μορφή ενός αρχείου ή πρωτοκόλλου» και μας προσφέρει και μία λίστα από τις «υπογραφές» πολλών γνωστών τύπων αρχείων που μπορείτε να το βρείτε σε αυτό το σύνδεσμο.

Πηγή: Infowars.com

Οπότε τώρα γνωρίζουμε ότι για να παρακάμψουμε τη συνάρτηση exif_imagetype() πρέπει να προσθέσουμε το «μαγικό αριθμό/υπογραφή» από κάποια μορφή εικόνας. Αλλά πως θα γίνει αυτό χωρίς να επηρεαστεί ο κώδικας του κακόβουλου προγράμματος μας; Εδώ μας βοηθάει πολύ η γλώσσα προγραμματισμού PHP καθώς οτιδήποτε βρίσκεται εκτός του ανοίγματος και κλεισίματος της, αγνοείται από το μεταγλωττιστή της. Με απλά λόγια θα κάνουμε κάτι τέτοιο.


ΟΤΙΔΗΠΟΤΕ ΘΕΛΟΥΜΕ
<?
  Κώδικας σε PHP
?>

Βλέποντας τους «μαγικούς αριθμούς/υπογραφές» των αρχείων από τη λίστα που αναφέραμε παραπάνω, το πιο απλό φαίνεται πως είναι το BMP (εικόνα bitmap) που έχει υπογραφή/μαγικό αριθμό «BM». Άρα το κακόβουλο πρόγραμμα μας θα έχει μία πολύ μικρή αλλαγή, θα είναι αυτό που βλέπετε στη συνέχεια.


BM
<?
    passthru($_GET['entolh']);
?>

Εάν τα έχουμε υπολογίσει όλα σωστά, τότε θα πρέπει να μπορούμε να επαναλάβουμε τα ίδια ακριβώς βήματα με το προηγούμενο επίπεδο αλλά χρησιμοποιώντας αυτό το νέο κακόβουλο πρόγραμμα ώστε να παρακάμψουμε το νέο μέτρο ασφαλείας. Δηλαδή, το σχέδιο δράσης μας θα είναι ακριβώς το ίδιο με πριν με μοναδική διαφορά τη μικρή αλλαγή στο κακόβουλο πρόγραμμα μας ώστε να ξεγελάσει συνάρτηση exif_imagetype() με την υπογραφή «BM». Έτσι, η συνάρτηση exif_imagetype() θα αναγνωρίσει ότι πράγματι το αρχείο μας είναι εικόνα και όλα τα λειτουργήσουν όπως ακριβώς βλέπετε στο παρακάτω σχέδιο.

Πηγή: Προσωπικό αρχείο

Οπότε, ας το δοκιμάσουμε. Φτιάξαμε ένα αρχείο με όνομα «shell.php» και περιεχόμενο αυτό που δείξαμε παραπάνω και ξεκινήσαμε το πρόγραμμα υποκλοπών Burp Suite. Στη συνέχεια αλλάξαμε τις ρυθμίσεις στο περιηγητή ιστού μας ώστε να στέλνει τα πάντα μέσω του Burp Suite και επιλέξαμε να ανεβάσουμε το αρχείο μας ως εικόνα.

Πηγή: OverTheWire.org

Ακολουθώντας τα ίδια βήματα που είχαμε κάνει και στο δωδέκατο επίπεδο, αλλάζουμε το όνομα του αρχείου προτού αποσταλεί στον εξυπηρετητή ώστε να έχει επέκταση αρχείου «.php». Εμείς το μετονομάσαμε σε «shell.php» όπως βλέπετε από το παρακάτω στιγμιότυπο από το πρόγραμμα Burp Suit όπου έχουμε υπογραμμίσει το όνομα που δώσαμε στο αρχείο.

Πηγή: Προσωπικό αρχείο

Στη συνέχεια πατάμε το κουμπί «Forward» (Προώθηση) που θα προωθήσει το τροποποιημένο μήνυμα μας στον εξυπηρετητή. Ακριβώς όπως και στη προηγούμενη φορά, το αρχείο μας ανέβηκε παρακάμπτοντας τα μέτρα ασφαλείας καθώς βλέπουμε ότι μετονομάστηκε με ένα τυχαίο όνομα αλλά έχει ακόμα επέκταση «.php» που σημαίνει ότι θα εκτελεστεί ως πρόγραμμα από τον εξυπηρετητή.

Πηγή: OverTheWire.org

Πατώντας επάνω σε αυτό το σύνδεσμο θα έχουμε το ίδιο σφάλμα με πριν καθώς δεν έχουμε δώσει κάτι στη παράμετρο $entolh που έχουμε ορίσει στο πρόγραμμα μας.

Πηγή: OverTheWire.org

Με την εντολή συστήματος «cat» θα ζητήσουμε να δούμε τα περιεχόμενα του αρχείου /etc/natas_webpass/natas14 το οποίο γνωρίζουμε από τα προηγούμενα επίπεδα ότι περιέχει το κωδικό πρόσβασης για το επόμενο επίπεδο. Βλέπετε στη συνέχεια το τι ακριβώς θα γράψουμε ως εντολή προς εκτέλεση.

Πηγή: Προσωπικό αρχείο

Και φυσικά, αυτό μας επιστρέφει τον κωδικό πρόσβασης για το επόμενο επίπεδο που θα αναλύσουμε σε άλλο άρθρο. Βλέπετε τον κωδικό αυτό εδώ.

Πηγή: OverTheWire.org

Όπως είχαμε περιγράψει και στο άρθρο μας «Πολεμικά Παίγνια: OTW Natas #12», το επίσημο όνομα από αυτό το κενό ασφαλείας είναι «Unrestricted File Upload» (Ανέβασμα Αρχείου Χωρίς Περιορισμό) και μέχρι και σήμερα είναι από τα πιο διαδεδομένα κενά ασφαλείας που προσφέρουν πρόσβαση σε μη εξουσιοδοτημένους χρήστες. Όπως είδαμε το να προσθέτει κανείς τυφλά επιπρόσθετους ελέγχους δε συνεπάγεται με αύξηση της ασφάλειας του συστήματος. Απαιτείται σκέψη και επιλογή των κατάλληλων μέτρων ασφαλείας, ακριβώς όπως και στο πραγματικό κόσμο.

το βρήκαμε εδώ

Natas
#Πολεμικά #Παίγνια #OTW #Natas

Latest articles

Find us on

Latest articles

Related articles

Προσβολή στόχων με έμμεσα πυρά (αποστολή βολής) – commandos.gr...

Για την εκτέλεση παρατηρούμενης έμμεσης βολής ακολουθούνται τα εξής τρία στάδια: Εντοπισμός του στόχου (εξακρίβωση της θέσης του). αίτηση πυρών με...

Σχολή Υποβρύχιων Καταστροφών – commandos.gr – Ειδικές Δυνάμεις

των Περικλή Ζορζοβίλη και Δημήτρη Μανακανάτα, ΠΕΡΙΠΟΛΟΣ Ανοιξη 2006 Από την εποχή της συγκρότησής της, το 1953 μέχρι...

Σχολείο Υποβρυχίων Καταστροφών (ΣΥΚ) – Θέματα για τις Ελληνικές...

Η Ελλάδα εισήλθε στη συμμαχία ΝΑΤΟ στις 18 Φεβρουαρίου 1952 και σύντομα ξεκίνησαν οι συνεκπαιδεύσεις και ανταλλαγή...

Πυρομαχικό SMArt 155 (DM702) – commandos.gr – Ειδικές Δυνάμεις

To SMArt 155 είναι ένα έξυπνο, αυτόνομο και αποτελεσματικό πυρομαχικό Πυροβολικού τύπου «fire and forget», το...

Σωστικά μέσα ιπταμένων – commandos.gr – Ειδικές Δυνάμεις

Ατομικό Σωσίβιο Ιπταμένου LPU – 10/P Φοριέται κάτω από το life jacket, με τους ασκούς στην εξωτε­ρική μεριά...

Στρατιωτική Ελεύθερη Πτώση – commandos.gr – Ειδικές Δυνάμεις

Οι επιχειρήσεις Στρατιωτικής Ελεύθερης Πτώσης χαρακτηρί­ζονται γενικά από πτήσεις πάνω ή δίπλα από τον Αντικειμενικό Σκοπό (ΑΝΣΚ)...