Duplicator è un plugin molto utile per quegli utenti che vogliano migrare/copiare isiti WordPress. Con Duplicator, gli amministratori possono creare una nuova copia del sito ed il file di backup generato può essere scaricato dalla dashobard di WP.

La vulnerabilità Zero-Day del plugin Duplicator.

Lo sfruttamento della vulnerabilità zero-day scoperta consente agli hacker di scaricare arbitrariamente file dai siti target. Più di 1 milione di siti web WordPress sono affetti da questo problema di sicurezza.

Quando un utente crea una copia di un sito WP e fa clic sul pulsante “Download”, viene chiamato l’handler AJAX di WordPress con l’azione duplicator_download ed il parametro file.

Sfortunatamente l’azione duplicator_download era registrata attraverso wp_ajax_nopriv_ ed era quindi accessibile ad utenti non autenticati. A peggiorare le cose, non era prevista una validazione volta a limitare i percorsi da cui era possibile scaricare i file.

Il parametro file è passato attraverso sanitize_text_field e aggiunto alla costante del plugin DUPLICATOR_SSDIR_PATH, tuttavia era ancora possibile un attacco di tipo “Directory Traversal“. Un attaccante potrebbe accedere a file esterni alla cartella di Duplicator, inviando valori come ../../../file.php per navigare attraverso la struttura delle cartelle del server.

WordFence

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');

Quali sono i segni di avvenuto sfruttamento di questa vulnerabilità?

Il ritrovamento delle seguenti stringhe in una richiesta GET indica che, molto probabilmente, il sito è stato oggetto di attenzione da parte degli hacker.

  • action=duplicator_download
  • file=/../wp-config.php

Se il tuo sito è su Host, è al sicuro

Se il tuo sito è su Host.it non hai nulla da temere, infatti tutti i nostri nuovi profili di hosting condiviso (Host Agile, Smart, Genius, 4.0 e 5.0) e di cloud hosting (Host Cloud) sono protetti da Cerbero un sofisticato sistema di protezione che include un innovativo Web Application Firewall.

Le definizioni di Cerbero sono state aggiornate immediatamente per prevenire e bloccare gli attacchi tesi a sfruttare la vulnerabilità di Duplicator su WordPress.


Corso Svizzera 185 - 10149 - Torino
800 943 944
[email protected]