Actualizado el 21 de Marzo del 2018 (Publicado el 26 de Octubre del 2017)
839 visualizaciones desde el 26 de Octubre del 2017
1,8 MB
17 paginas
Creado hace 10a (27/09/2014)
DOCS
WORDPRESSA BYPASS UPLOAD
SIMPLE SCHOOLS STAFF DIRECTORY
ÍNDICE
1. Nombre plugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Descripción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Breve descripción del código. . . . . . . . . . . . . . . . . . . . . . . . . .
4. Vulnerabilidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Explotación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6. Solución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Datos de contacto. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .
3
4
5
6
7 a 14
15 a 16
17
DOCS
Simple Schools
Staff Directory
Versión 1.1
DOCS
Descripción
Simple Schools Sta(cid:31) Directory es un plugin dirigido tanto a cole-
gios, como a escuelas y universidades.
Entre sus funciones principales, podemos encontrar tales como
un calendario de eventos, formularios en línea con un simple
arrastrar y soltar, back-end de visualización y descargas, bibliogra-
fía del personal....
4
DOCS
Breve descripción
del código
El plugin se conforma de dos archivos en PHP, avatars.php y
si_main.php el primero de ellos, engloba una clase llamada Sim-
ple_Local_Avatars, la cual contiene la mayoría de las funciones
que utiliza este plugin.
En segundo lugar, tenemos el archivo si_main.php, que es el
archivo principal utilizado por el plugin.
5
DOCS
Vulnerabilidades
Si navegamos por el codigo php del archivo si_main.php, pode-
mos (cid:30)jarnos que sobre la linea 920, hace una llamada a la funcion
"move_upload_(cid:30)le()" de php:
918 if ($_files["file"]["type"]){
919 $image = str_replace(" ", "-", $_fi-
les["file"]["name"]);
920 move_uploaded_file($_files
["file"]["tmp_name"],
921 $add_logo_directory .'/'. $image);
922 update_option('add_logo_logo', $ad-
d_logo_upload_dir['baseurl'] . "/logos/"
.$image);
923
$image);
924 }
update_option('add_logo_filename',
Como vemos, el auto, comprueba mediante un "if" el nombre
del archivo y su tipo. Después, reemplaza los espacios que pueda
haber en el nombre por guiones y a continuación, mueve el
archivo a la carpeta "/logos/" dentro de la carpeta base de subida
de wordpress.
Fijándonos un poco en el código, nos damos cuenta que no hace
ningún tipo de (cid:30)ltrado del archivo, con lo que un usuario malin-
tencionado, podría subir un archivo con extensión PHP y ejecu-
tar comandos en el servidor.
6
DOCS
Explotación
¡He aquí la parte que más me gusta y, por defecto, la que mejor se
me da! En estaocasión, la explotación de este plugin es bastante
sencilla:
Lo primero que haremos, es ir a nuestro Laboratorio Wordpress
y activar el plugin.
Ver siguiente página.
7
DOCS
Si no tenéis montado un laboratorio, podréis encontrarlo junto a otras herramientas en
wordpressa.quantika14.com
8
DOCS
Una vez activado el plugin y sabiendo la vulnerabilidad, vamos al
panel y en ajustes, seleccionamos la opción "add logo" que nues-
tro plugin nos ha creado.
9
DOCS
Una vez en la sección, veremos como nos aparece un cargador de archivos o uploader.
10
DOCS
Pues bien, seleccionamos nuestra shell.php y guardamos los cambios.
11
DOCS
Como podemos observar, no se produjo ningún error en la carga del archivo y nosaparece un mensaje que dice "Logo settings saved."
en la parte superior.
12
DOCS
En la parte inferior, debajo del uploader, nos sale un recuadro donde supuestamente severía un Thumbnail de nuestra imagen, pero al
ser un archivo PHP no se hace visible. Pinchamos sobre la supuesta imagen con el botón derecho del ratón ycopiamos la ruta de la
imagen.
13
DOCS
Si abrimos una nueva pestaña en el navegador y pegamos la ruta obtenida…
et voilà ! Ya tenemos subida nuestra shell.php y tenemos acceso al servidor.
14
DOCS
Solución
La solución más sencilla sería cambiar la sentencia if de las lineas
vulnerables por el siguiente código, el cual toma el nombre origi-
naldel archivo y cambia su extension por .jpg, así evitariamos la
ejecución de código arbitrario en nuestro servidor. Ésto seria un
pequeño parche, que si bién no es la mejor solución al problema,
es una de tantas...
Ver siguiente página.
15
DOCS
if ($_FILES["file"]["type"])
{
$archivo = $_FILES["archivo"]['name'];
$image = str_replace(" ", "-", $_FILES["file"]["name"]);
$image = substr_replace($image,"jpg",strlen($image)-3,3);
move_uploaded_file($_FILES["file"]["tmp_name"],
$add_logo_directory .'/'. $image);
update_option('add_logo_logo', $add_logo_upload_dir['baseurl'] . "/logos/" . $image);
update_option('add_logo_filename', $image);
}
16
DOCS
WordPressA
DOCS
wordpressa.quantika14.com
C/ Alcalde Isacio Contreras Nº 6 Bajo A.
41003 Sevilla
Tlf: +34 605 938 908
2013 - 2014 ® WordPressA
Esta obra está bajo una licencia de Creative Commons
Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Comentarios de: WordPress a bypass upload (0)
No hay comentarios