ΑρχικήsecurityDuplicator WordPress Plugin: Σφάλμα θέτει σε κίνδυνο 1 εκατ. ιστοσελίδες!

Duplicator WordPress Plugin: Σφάλμα θέτει σε κίνδυνο 1 εκατ. ιστοσελίδες!

Duplicator WordPress Plugin: Σφάλμα θέτει σε κίνδυνο 1 εκατ. ιστοσελίδες: Ο εντοπισμός ευάλωτων WordPress plugins φαίνεται να μην έχει σταματημό το τελευταίο διάστημα.

Η νέα έρευνα αποκάλυψε ότι το Duplicator WordPress plugin αποτελεί ένα ενεργό exploit. To Duplicator είναι ένα plugin που διευκολύνει τους διαχειριστές ιστοσελίδων να κάνουν migrate τις ιστοσελίδες του WordPress. Επίσης, επιτρέπει στους διαχειριστές  να κατεβάζουν αρχεία που δημιουργούνται μετά τη δημιουργία ενός νέου αντιγράφου του ιστότοπου από τους διαχειριστές.

Σε αυτό το σημείο, εντοπίζεται μια αυθαίρετη λήψη κακόβουλων αρχείων.

Πως συμβαίνει αυτό;

Τα download buttons οδηγούν σε ένα call στο πρόγραμμα χειρισμού του WordPress AJAX με την ενέργεια duplicator_download και μια παράμετρο αρχείου, υποδεικνύοντας τη θέση του αρχείου που πρόκειται να μεταφορτωθεί. Όταν κάνετε κλικ στο κουμπί, το απαιτούμενο αρχείο κατεβάζεται και ο χρήστης δεν χρειάζεται να αφήσει ή να φορτώσει ξανά την τρέχουσα σελίδα του. Δυστυχώς, η ενέργεια duplicator_download καταχωρήθηκε μέσω wp_ajax_nopriv_ και ήταν προσβάσιμη σε μη πιστοποιημένους χρήστες.

public static function duplicator_download() {

        $file = sanitize_text_field($_GET['file']);

        $filepath = DUPLICATOR_SSDIR_PATH.'/'.$file;

        // Process download

        if(file_exists($filepath)) {

            // Clean output buffer

            if (ob_get_level() !== 0 && @ob_end_clean() === FALSE) {

                @ob_clean();

            }




            header('Content-Description: File Transfer');

            header('Content-Type: application/octet-stream');

            header('Content-Disposition: attachment; filename="'.basename($filepath).'"');

            header('Expires: 0');

            header('Cache-Control: must-revalidate');

            header('Pragma: public');

            header('Content-Length: ' . filesize($filepath));

            flush(); // Flush system output buffer




            try {

                $fp = @fopen($filepath, 'r');

                if (false === $fp) {

                    throw new Exception('Fail to open the file '.$filepath);

                }

                while (!feof($fp) && ($data = fread($fp, DUPLICATOR_BUFFER_READ_WRITE_SIZE)) !== FALSE) {

                    echo $data;

                }

                @fclose($fp);

            } catch (Exception $e) {

                readfile($filepath);

            }

            exit;

        } else {

            wp_die('Invalid installer file name!!');

        }

    }

 

Δεν υπάρχουν περιορισμοί για τα downloaded file paths. Έτσι, κατέστη δυνατό για έναν εισβολέα να έχει πρόσβαση σε αρχεία σε διαφορετικά directories υποβάλλοντας τιμές όπως ../../../file.php. Η παράμετρος του αρχείου περνάει μέσα από το sanitize_text_field και προσαρτάται στο σταθερό DUPLICATOR_SSDIR_PATH της προσθήκης, αλλά η μετάβαση του directory ήταν ακόμα δυνατή.

function duplicator_init() {

    if (isset($_GET['action']) && $_GET['action'] == 'duplicator_download') {

        $file = sanitize_text_field($_GET['file']);

        $filepath = DUPLICATOR_SSDIR_PATH.'/'.$file;

        // Process download

        if(file_exists($filepath)) {

            // Clean output buffer

            if (ob_get_level() !== 0 && @ob_end_clean() === FALSE) {

                @ob_clean();

            }




            header('Content-Description: File Transfer');

            header('Content-Type: application/octet-stream');

            header('Content-Disposition: attachment; filename="'.basename($filepath).'"');

            header('Expires: 0');

            header('Cache-Control: must-revalidate');

            header('Pragma: public');

            header('Content-Length: ' . filesize($filepath));

            flush(); // Flush system output buffer




            try {

                $fp = @fopen($filepath, 'r');

                if (false === $fp) {

                    throw new Exception('Fail to open the file '.$filepath);

                }

                while (!feof($fp) && ($data = fread($fp, DUPLICATOR_BUFFER_READ_WRITE_SIZE)) !== FALSE) {

                    echo $data;

                }

                @fclose($fp);

            } catch (Exception $e) {

                readfile($filepath);

            }

            exit;

        } else {

            wp_die('Invalid installer file name!!');

        }

    }

}

add_action('init', 'duplicator_init');

 

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

Duplicator WordPress

Τα ακόλουθα Indicators of Compromise μπορούν να χρησιμοποιηθούν για να προσδιοριστεί εάν έχει παραβιαστεί ο ιστότοπός σας.

  • Το traffic που καταγράφεται από τη συγκεκριμένη διεύθυνση IP θεωρείται ύποπτη:

77.71.115.52

  • Οι επιθέσεις σε αυτήν την καμπάνια εκδίδονται μέσω GET requests με τα ακόλουθα query strings:
action=duplicator_download
file=/../wp-config.php

 

Σημείωση: Επειδή αυτό το τρωτό σημείο μπορεί να αξιοποιηθεί μέσω του WP AJAX, είναι δυνατό να γίνει exploit μέσω POST request. Σε αυτήν την περίπτωση, είναι δυνατόν το action parameter να μεταβιβαστεί στο POST body αντί για το query string. Αυτό θα αποτρέψει την εμφάνιση του action=duplicator_download string στα αρχεία καταγραφής HTTP. Ωστόσο, η παράμετρος του αρχείου πρέπει να διαβιβάζεται ως query string και αποτελεί αξιόπιστο δείκτη.

Duplicator WordPress

Επομένως, φροντίστε να έχετε ολοκληρώσει τα απαραίτητα updates της WordPress ιστοσελίδας σας για να παραμείνει ασφαλής. Σύμφωνα με τους ερευνητές, η ευπάθεια επηρέασε τις εκδόσεις του plugin Duplicator μέχρι την 1.3.28.

Μετά την ανακάλυψη της ευπάθειας, ενημερώθηκαν οι προγραμματιστές που έκαναν patched το σφάλμα με την έκδοση του plugin έκδοση 1.3.28. Παρά την διόρθωση του σφάλματος, περίπου μισό εκατομμύριο ιστότοποι δεν έχουν κάνει update τα plugin versions. Συνεπώς, παραμένουν εκτεθειμένοι στις επιθέσεις που αφορούν την εκμετάλλευση αυτού του ελάττωματος.

Κάντε άμεσα update για να μην πέσει στα χέρια των hackers η ιστοσελίδα σας!

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS