
MapPress Maps Pro < 2.53.9 - Esecuzione di codice remoto (RCE) a causa di un controllo degli accessi errato nelle azioni AJAX
MapPress Maps Pro < 2.53.9 - Remote Code Execution (RCE) dovuto a un controllo di accesso errato nelle azioni AJAX
La versione Pro di questo plugin registra diverse azioni AJAX che chiamano funzioni prive di controlli di capacità e nonce, in particolare le funzioni ‘ajax_get’, ‘ajax_save’ e ‘ajax_delete’ in mappress_template.php. Di conseguenza, è possibile per un utente malintenzionato autenticato con permessi minimi, come un abbonato, eseguire le seguenti azioni: Caricare un file PHP eseguibile (inclusi potenziali backdoor) e ottenere l'esecuzione remota di codice inviando una richiesta $_POST a wp-admin/admin-ajax.php con il parametro ‘action’ impostato su ‘mapp_tpl_save’, il parametro ‘name’ impostato sul nome base del file che si desidera creare e il parametro ‘content’ impostato su codice PHP eseguibile. Questo file verrà quindi creato nella directory del tema attualmente attivo e potrà essere eseguito.
Eliminare qualsiasi file PHP esistente sul sito (come wp-config.php) inviando una richiesta $_POST a wp-admin/admin-ajax.php con il parametro ‘action’ impostato su ‘mapp_tpl_delete’ e il parametro ‘name’ impostato sul nome base del file da eliminare. Ad esempio, per eliminare wp-config.php, è possibile utilizzare un attacco di directory traversal e impostare il parametro ‘name’ su ‘../../../wp-config’. Ciò causerebbe il reset del sito, a quel punto un utente malintenzionato potrebbe ottenere il pieno controllo del sito.
Visualizzare il contenuto di qualsiasi file PHP esistente sul sito (come wp-config.php) inviando una richiesta $_GET a wp-admin/admin-ajax.php con il parametro ‘action’ impostato su ‘mapp_tpl_get’ e il parametro ‘name’ del file da divulgare. Ad esempio, per visualizzare il contenuto di wp-config.php, è possibile utilizzare un attacco di directory traversal e impostare il parametro ‘name’ su ‘../../../../wp-config’.
python3 exploit.py --url http://wordpress.lan --username user --password useruser1 --code "<?php phpinfo(); ?>"