
MapPress Maps Pro < 2.53.9 - Ejecución Remota de Código (RCE) debido a Control de Acceso Incorrecto en AJAX Actions
MapPress Maps Pro < 2.53.9 - Ejecución Remota de Código (RCE) debido a un Control de Acceso Incorrecto en Acciones AJAX
La versión profesional de este plugin registra varias acciones AJAX que llaman a funciones que carecen de comprobaciones de capacidad y comprobaciones de nonce, concretamente las funciones 'ajax_get', 'ajax_save' y 'ajax_delete' en mappress_template.php. Por lo tanto, es posible que un atacante autenticado con permisos mínimos, como un suscriptor, realice las siguientes acciones:
Subir un archivo PHP ejecutable (incluyendo posibles puertas traseras) y lograr Ejecución Remota de Código enviando una solicitud $_POST a wp-admin/admin-ajax.php con el parámetro 'action' establecido en 'mapp_tpl_save', el parámetro 'name' establecido en el nombre base del archivo que desea crear, y el parámetro 'content' establecido en código PHP ejecutable. Este archivo se crearía entonces en el directorio del tema actualmente activo y podría ejecutarse desde allí.
Eliminar cualquier archivo PHP existente en el sitio (como wp-config.php) enviando una solicitud $_POST a wp-admin/admin-ajax.php con el parámetro 'action' establecido en 'mapp_tpl_delete' y el parámetro 'name' establecido en el nombre base del archivo a eliminar. Por ejemplo, para eliminar wp-config.php se podría utilizar un ataque de recorrido de directorios, y el parámetro 'name' podría establecerse como '../../../wp-config'. Esto provocaría que el sitio se reiniciara, momento en el cual un atacante podría obtener el control total del sitio.
Ver el contenido de cualquier archivo PHP existente en el sitio (como wp-config.php) enviando una solicitud $_GET a wp-admin/admin-ajax.php con el parámetro 'action' establecido en 'mapp_tpl_get' y el parámetro 'name' del archivo a revelar. Por ejemplo, para ver el contenido de wp-config.php, se podría utilizar un ataque de recorrido de directorios, y el parámetro 'name' podría establecerse como '../../../../wp-config'.
python3 exploit.py --url http://wordpress.lan --username user --password useruser1 --code "<?php phpinfo(); ?>"