Más Full Path Disclosure en WordPress y sin solución

Hace unos días publiqué un artículo sobre varios plugins que nos permitian ver el directorio completo de la instalación de wordpress (full path disclosure). Luego de esta publicación de una discusión en un hilo de la lista en full disclosure, me llegó un correo donde me comentaban que no sólo eran esos ficheros los que tenian esta vulnerabilidad, sino muchos más dentro de todo el sistema de wordpress.pwnpress
En la lista full disclosure y por otros medios, la gente me decia que eso se desactivaba facilmente deshabilitando la opcion "display errors" de php (ya sea en el php.ini, htaccess o en el mismo fichero php) pero mi opinión fue siempre la misma: Esta forma de 'solucionarlo' ocultaría el error pero en ningún caso lo solucionaría, es decir, el problema continuaría estando, pero oculto. Otras personas dieron otro tipo de solución como la de editar los ficheros e incluir una validación de la existencia de algunas constantes o variables que Wordpress setea y, de esta forma, saber si el fichero se está ejecutando directamente o mediante wordpress.

Este problema lo reporté a security en wordpress.com el mismo día que hice la publicación pero no obtuve respuesta.

Ahora les mostraré los otros ficheros por los cuales es posible descubrir la ruta completa del sistema y las posibles soluciones que me han palnteado.

··· Leer más ···

Dentro del directorio wp-admin/import tenemos varios ficheros php:

blogger.php blogware.php btt.php dotclear.php greymatter.php jkw.php livejournal.php mt.php opml.php rss.php stp.php textpattern.php utw.php wordpress.php wp-cat2tag.php

Todos vulnerables.
Dentro de wp-admin/includes tenemos los siguientes ficheros vulnerables:

admin.php class-ftp-pure.php class-ftp-sockets.php class-wp-filesystem-direct.php class-wp-filesystem-ftpext.php class-wp-filesystem-ftpsockets.php class-wp-filesystem-ssh2.php comment.php continents-cities.php file.php media.php misc.php plugin-install.php plugin.php schema.php template.php theme-install.php update.php upgrade.php user.php

La solución que plantea esta persona es la siguiente:

PRE0

o bien

PRE1

Esta persona me comentó que haría una publicación en su sitio web al respecto, pero no la encuentro. Les dejo el enlace a su blog por si las moscas: https://rollanwar.net

Comentarios (3)

rdcklinux
tambien propongo definirlo asi

if ( !defined(‘WP_ADMIN’) and !defined(‘WP_USE_THEMES’) or defined(‘ABSPATH’) ) die();

en una sola linea es mas facil de editar cada archivo
ehooo
Tambien vale esta:
if (! ( defined('WP_ADMIN') or defined('WP_USE_THEMES') or defined('ABSPATH') ) ){
die();
}
Collagen Pure
I have fun with, result in I discovered exactly what I was taking a
look for. You have ended my 4 day long hunt! God Bless you
man. Have a great day. Bye

Deja un comentario