Ανέβασμα shell σε ιστοσελίδα με το BurpSuite και το DVWA

Σε γενικές γραμμές, μπορούμε να πούμε ότι η λύση σε πολλές injection επιθέσεις σε web εφαρμογές γίνετε με την “Επικύρωση εισόδου”. Η επικύρωση εισόδου, είναι ο έλεγχος οποιασδήποτε εισόδου (ή δεδομένων) που παρέχεται από έναν χρήστη ή μια εφαρμογή σε σχέση με τα αναμενόμενα κριτήρια. Η επικύρωση εισόδου αποτρέπει την είσοδο κακόβουλων ή ανεπαρκώς καταρτισμένων δεδομένων σε ένα πληροφοριακό σύστημα. Οι εφαρμογές θα πρέπει να ελέγχουν και να επικυρώνουν όλες τις εισόδους που εισάγονται σε ένα σύστημα για την αποτροπή επιθέσεων και λαθών. Η επικύρωση εισόδου είναι επίσης σημαντική όταν λαμβάνονται δεδομένα από εξωτερικά μέρη ή πηγές. Η λανθασμένη επικύρωση εισόδου μπορεί να επιτρέψει επιθέσεις injection, memory leakage και να εκτεθούν περισσότερα συστήματα σε κίνδυνο.

Ορισμένες εφαρμογές μας επιτρέπουν και μας ενθαρρύνουν να ανεβάσουμε μια φωτογραφία, ένα βίντεο ή ένα άβαταρ του εαυτού μας (σκεφτείτε το Facebook, το Twitter, το LinkedIn, άλλα μέσα κοινωνικής δικτύωσης ή τον ιστότοπο της επιχείρησής σας ή του σχολείου σας). Τι εμποδίζει τους επιτιθέμενους από το να ανεβάσουν απλώς ένα κακόβουλο script; Συνήθως η απάντηση είναι ο έλεγχος και η επικύρωση του τύπου της εισόδου προτού επιτραπεί η μεταφόρτωσή του αρχείου.

Βήμα #1: Ανοίξτε το Kali και τρέξτε το Burp Suite

upload13

Για να ξεκινήσετε, ανοίξτε το Kali Linux και τρέξτε το .

upload
upload1

Ενεργοποιήστε το BurpSuite για να στέλνει μέσω proxy τα request και τα responses σας από το πρόγραμμα περιήγησής σας

upload2

Βήμα #2: Εκκινήστε το OWASP BWA

Τώρα, ξεκινήστε τον διακομιστή OWASP Broken Web App (BWA) και μεταβείτε στην εφαρμογή και συνδεθείτε (admin/password).

upload3

Αφού συνδεθείτε στο DVWA, μεταβείτε στο κουμπί κάτω αριστερά και ρυθμίστε την ασφάλεια του DVWA σε “medium”. Βεβαιωθείτε ότι έχετε ενεργοποιήσει το intercept στο BurpSuite proxy.

upload4

Βήμα #3: Προσπαθήστε να ανεβάσετε ένα κακόβουλο αρχείο

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

upload5

Σημειώστε στο παρακάτω στιγμιότυπο οθόνης, η εφαρμογή αναφέρει “Choose an image to upload:“.

  Αποφύγετε τον εντοπισμό σας από τα AV με το shellter

Τώρα, αντί να ανεβάσουμε μια εικόνα, προσπαθούμε να ανεβάσουμε ένα κακόβουλο Python script.

Δημιούργησα ένα αρχείο και το ονόμασα “malicious_python_script.py” και προσπάθησα να το ανεβάσω. Μπορείτε να δημιουργήσετε οποιοδήποτε αρχείο κειμένου, κακόβουλο ή μη, και να επιχειρήσετε να το ανεβάσετε.

upload6

Όπως μπορείτε να δείτε παρακάτω, η εφαρμογή απέρριψε το κακόβουλο script μας επειδή χρησιμοποιεί επικύρωση εισόδου για να βεβαιωθεί ότι το αρχείο μεταφόρτωσης είναι αρχείο εικόνας.

Μπορούμε άραγε να παρακάμψουμε αυτή την επικύρωση εισόδου;

upload7

Βήμα #4: Παράκαμψη επικύρωσης εισόδου με το BurpSuite

Ας πάμε στο BurpSuite και ας δούμε το POST που καταγράφηκε από το intercept. Όπως μπορείτε να δείτε στις γραμμές 19 και 20, αναγνώρισε το όνομα του αρχείου και προσδιόρισε τον τύπο του αρχείου ως “text/x-python”. Αυτό είναι το σωστό. Η εφαρμογή σχεδιάστηκε για να επιτρέπει μόνο τη μεταφόρτωση εικόνων και έτσι απέρριψε το κακόβουλο αρχείο μας.

upload8

Τώρα, ας μπούμε στο intercepted POST και ας το επεξεργαστούμε ελαφρώς. Η επικύρωση της εισόδου πραγματοποιήθηκε μέσα στη φόρμα στην πλευρά του πελάτη. Τώρα που την υποκλέψαμε στο δρόμο της προς το διακομιστή, μπορούμε να επεξεργαστούμε τον κώδικα ώστε να αντικατοπτρίζει ότι πρόκειται για ένα “ασφαλές” αρχείο πριν το στείλουμε στο διακομιστή. Μπορούμε να το κάνουμε αυτό αλλάζοντας το Content-Type στη γραμμή #20 σε “image/jpeg”. Με αυτόν τον τρόπο ο διακομιστής θα δεχτεί αυτό το αρχείο, πιστεύοντας ότι το αρχείο είναι ένα ασφαλή αρχείο jpeg.

upload9

Τώρα, στο BurpSuite, προωθήστε το POST στον διακομιστή.

Το αρχείο μεταφορτώθηκε με επιτυχία και το Python script μας είναι έτοιμο να εκτελεστεί και να κάνει τη βρώμικη δουλειά του!

upload10

Επίλογος

Σε γενικές γραμμές, η επικύρωση εισόδου είναι η απάντηση στο πρόβλημα των επιθέσεων εισόδου σε διαδικτυακές εφαρμογές. Σε αυτή την περίπτωση, η web εφαρμογή έκανε επικύρωση εισόδου μόνο στην πλευρά του πελάτη και επομένως ο επιτιθέμενος μπορεί να τροποποιήσει την απάντηση POST στο BurpSuite για να επεξεργαστεί τον τύπο αρχείου και να κάνει τον διακομιστή να δεχτεί το κακόβουλο περιεχόμενό του!

BurpSuite,DVWA,shell

Written by Anastasis Vasileiadis

Οι μεταφράσεις είναι σαν τις γυναίκες. Όταν είναι ωραίες δεν είναι πιστές και όταν είναι πιστές δεν είναι ωραίες.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).