Parche para WordPress 2.0, 2.0.1 y 2.0.2 RC1 – Full path disclosure- los 17 archivos.

Hola amigos, ante la confusión que se ha creado en muchos sitios sobre la solución de Neo Security Team que previene la visualización de las rutas de archivo en WordPress versiones 2.0, 2.0.1 y 2.0.2 RC1 y casi es seguro que la versión final.

Ya que según WordPress no es un Bug del software sino de la configuración del server -EDITO A LAS 15,18 H DEL DIA 8- ya explico debajo en el comentario #5 el porqué es una “cagada” esta postura de WordPress (que les costará solucionarlo me digo yo, estos ya están con la pasividad de otros…).

Vistas las dudas y confusión que está habiendo, me he decidido a colgaros los 17 archivos parcheados susceptibles de ser ejecutados con la consiguiente adivinación del path de vuestro WordPress. Esto no corrige la vulnerabilidad XSS aclaro. Decir también que ese Bug (XSS) solo se puede explotar con la cuenta de admin…

El problema que se está dando es que ha habido gente que ha copiado el código en sus Webs o Blogs pero con comillas dobles y no simples o sin ser proveniente de un código “limpio”, eso hace que falle el código al haber un error de sintaxis. Debajo una captura de mi vim (versión mejorada de vi y para mi “el editor” de GNU/Linux) que como podéis ver, no “engaña”.

code_wp.gif

Por favor leer el “Readme” que os he dejado en los parches y hacer backups de vuestros archivos originales por si acaso.

Ejemplo del código incluido Parches, en formato tar.gz y zip

Los cambios están documentados en los parches, os los linko > leer antes.txt, como digo están dentro pero como alguno me habéis dicho que teníais problemas en Windows para abrirlo por el UTF8 pues ahí los podéis ver.

También os recomiendo borrar de vuestro wp remoto wp-admin los archivos .install y .upgrade.php ya que he comprobado que algunos no lo hacéis y es importante quitarlos nada más instalar o actualizar vuestro Weblog, saludos y espero que os sirva de ayuda, Dabo.

dabo

Work: @apache_ctl | Edu: Hacker (and free) Culture & @debianhackers, @daboweb | Life: @verticalplaneta | ¿Hacktivista? (legítima defensa) GPG Key 0xBC695F37

dabo escribió 1247 entradas

Navegación de la entrada


Comentarios

  • Pingback:

    meneame.net
  • Kids

    Gracias ho, por preocuparte por estas cosillas. Me lo apunto.

    ¡Marchando otra portada de menéame! (fijo, y merecida).

  • ladyblues

    Gracias Dabo, es un señor currazo!! y muy necesario. Creo que estaba el tema demasiado pendiente de un hilo y que esto nos ayuda mucho a los que tenemos un wordpress (o dos, como yo) rulando.

    Un beso!
    Mabel

  • dabo

    Bien, lo primero saludando a la gente que venga del trackback de idealabs, quisiera comentar algo, con el código que he visto que está pasteado alli

    el post de los amigos de idealabs al que me refiero

    < directory /ruta/a/wordpress/ >
    Options -Indexes
    ErrorDocument 401 “error
    ErrorDocument 403 “error
    < /directory>

    No lo solucionas en la mayoria de los casos y así está habiendo los problemas que veo, porque si haces ese Indexes en el .htaccess dejas de ver todo el host, haz la prueba, no estoy de acuerdo con WordPress para nada y no es por crear polémica, lo de tener registers global en off creo que cualquier admin que sepa medianamente lo que hacer lo tendrá así, tampoco lo solucionas poniendo dentro de la carpeta en cuestión un “index.html” como he visto por ahí, según eso con el index.php valdría.

    A ver, me explico, si tu vas por ejemplo a

    https://www.daboblog.com/parche_wp/

    ahí no hay ningún index.hml ni nada, está bien configurado el server y como se puede ver no lista el directorio

    Esto es lo que hay dentro;

    [[email protected] /xxx/xxx/parche_wp]$ ls
    leer_antes.txt wordpress_full_path_disclosure.tar.gz wordpress_parche_full_disclosure.zip

    Globals en off

    [[email protected] ~]$ grep -i globals off /etc/php.ini
    /etc/php.ini:; - register_globals = Off [Security, Performance]
    /etc/php.ini:; Note that register_globals is going to be depracated (i.e., turned off by
    /etc/php.ini:; Read http://php.net/manual/en/security.registerglobals.php for further
    /etc/php.ini:; register_globals to be on; Using form variables as globals can easily lead
    /etc/php.ini:register_globals = Off
    /etc/php.ini:; to initialize a session variable in the global scope, albeit register_globals

    Como se puede ver, no lista el directorio, es donde están los parches y en cambio esos archivos provocan un fallo que no tengo tiempo ( y si sueño XD) a explicar largamente.

    el XSS creo que todo el mundo tiene claro que al ser solo ejecutado como admin pues…no se que es peor, que ejecuten el código o que se hagan admin XD, pero esto es un error y grave de WordPress porque no lo solucionan porque no les sale de los huevos, así de claro y a ver, tu tienes Registers Global off, el Apache bien configurado etc etc y…te dejan con el culo al aire porque mucha gente no sabe de todas estas movidas o no tiene acceso a la configuración de su servidor.

    Y para acabar el mejor firewall para mi es iptables y si quieres ir un poco más allá puedes instalar algo como Mod Security aplicación Open Source que te puede evitar muchos problemas.

    Saludos y lamento no haber puesto en el codigo algo que no fuera lo del mío pero estaba muy cansado para el mitico buscar y reemplazar XD

  • dabo

    Por cierto, este Bug se podría parar a nivel de server y configuración del Apache pero porque los SEÑORES de WordPress no quieran trabajar no tenemos los demás que cambiar la nuestras configuraciones globales por una sola aplicación -:) Asi que me jodo :D y cambio cada uno a callo XD

  • ladyblues

    A mí lo que me parece es que hay mucha peña dando palos de ciego sin molestarse en mirarlo todo a jierro, que es lo que hay que hacer cuando hay una movida sumida en la incertidumbre. Que si no hay XSS que si por parte de wordpress sí que la hay… joder, es un consuelo ver que al menos hay gente que se está molestando en llegar a una conclusión clara sobre esto.

    Saludos.

    Mabel

  • dabo

    Un saludo a los amigos de http://elav.la100rra.com , acabo de ver el ping y si, haces muy bien en recordar lo que comento de que se borren de wp-admin los archivos install.php y upgrade.php que es increible la cantidad de sites y no pequeños precisamente que los tiene arriba en el server. Un fallo lo puede tener cualquiera pero estas son el tipo de cosas creo yo 100 % evitables no como lo que hacen desde WordPress que dejan expuestos a muchos Blogs.

    Saludos -:)

  • ladyblues

    Yo me he decantado por meter el parche que adjuntas con el texto modificado y eliminando tu nombre (no procede dejar Saludos, Dabo jejeje) y van los dos blogs del carajo. Por cierto, paquetes somos a veces… en divasdelblues me había dejado el upgrade arriba. Con lo meticulosa que fuí con esa movida. En fin, me quedo más tranquila. Lo que no soporto es esta incertidumbre y los dimes y diretes sin que wordpress acabe de ser claro en cuanto a sus opiniones.

    XSS ha dejado de preocuparme visto lo visto… cuenta admin… jejejeje a quién le preocupa llegado el momento la movida de XSS.

    Saludos.
    Mabel
    P.D: Transmit Rules!!! qué rapidez!

  • dabo

    Me alegro, por cierto, estaba haciendo cambios de ahí que el template cascara en la zona de comentarios -:)

  • dabo

    Un saludo a la gente de faq-mac que llegan de allí desde la reseña que han tenido a bien poner -:)

    Y Gustavo, no te mosquees conmigo que todos queremos lo mejor para la gente :D

  • cicloid

    Extraido de el php.ini:


    ; Print out errors (as a part of the output). For production web sites,
    ; you're strongly encouraged to turn this feature off, and use error logging
    ; instead (see below). Keeping display_errors enabled on a production web site
    ; may reveal security information to end users, such as file paths on your Web
    ; server, your database schema or other information.
    display_errors = On

    Si el hosting no toma esas consideraciones de seguridad, cambiaria de hosting, pero por algo tengo un servidor. (Si ya se, tiene grsecurity, mod_security, etc)

  • Malcom

    Un saludo a dabo y a toda su audiencia xD.El patch va perfecto,soy uno de los que cayo en el error de no ver las ” y estaba desesperado,gracias por el trabajo,lo he leido en meneame y aqui estoy,si en algo puedo ayudar contad conmigo.

    lo que dice cicloid no tiene logica porque un blog no puede hacer que se cambie toda la configuracion del servidor web, como fire al igual que dabo el de linux el mejor, iptables y hay muchas formas de filtrar xD,lo mas logico es que se patcheen los archivos que llevan a la adivinacion del path del wp y se acaba el problem.yo como ladyblue me habia dejado el upgrade e install arriba ja ja asi que tu recordatorio no me ha venido nada mal. un saludo y a seguir asi xD.Gracias por tu tiempo

  • ladyblues

    Sí bueno, parece ser que al personal de wordpress le pone más “matar moscas a cañonazos” que escribir unas líneas de código con comillas simples. Tengo un quemazo muy grande con esta movida wordpress.

    Saludos!
    Mabel

  • Liamngls

    Worpress hace el mal .. WP it!!! ;)

  • ladyblues

    XDDDD Patch It!!
    Nos van a echar a la calle, LiamNgls.

  • Liamngls

    Aquí se despista uno y …..

    Trackback It!!

    No te preocupes Mabel … si eso me echará a mi que me encontró en la calle .. a tí te aguantará un poco más … xD

  • ramazzottiano

    He implementado el parche, pero al querer entrar me marca este error:

    Warning: array_filter() [function.array-filter]: The second argument, ‘Array’, should be a valid callback in /home/jltorres/www/ramazzottiano/wordpress/wp-includes/capabilities.php on line 152

    Warning: Invalid argument supplied for foreach() in /home/jltorres/www/ramazzottiano/wordpress/wp-includes/capabilities.php on line 156

    Warning: Cannot modify header information – headers already sent by (output started at /home/jltorres/www/ramazzottiano/wordpress/wp-includes/capabilities.php:152) in /home/jltorres/www/ramazzottiano/wordpress/wp-includes/pluggable-functions.php on line 221

    Warning: Cannot modify header information – headers already sent by (output started at /home/jltorres/www/ramazzottiano/wordpress/wp-includes/capabilities.php:152) in /home/jltorres/www/ramazzottiano/wordpress/wp-includes/pluggable-functions.php on line 222

    Warning: Cannot modify header information – headers already sent by (output started at /home/jltorres/www/ramazzottiano/wordpress/wp-includes/capabilities.php:152) in /home/jltorres/www/ramazzottiano/wordpress/wp-includes/pluggable-functions.php on line 194

  • dabo

    Hola amigo, tenías el Wp actualizado a la última versión?? te lo digo porque se lo han bajado cientos de personas y no les ha dado pegas ya que los archivos que te has bajado son iguales a los originales salvo esos cambios en el código.

    Ya me comentas, un saludo -:)

  • ramazzottiano

    Hola dabo, bueno estaba usando la version 2.0, sera ese el problema? Aun no he intentado con la mas nueva version, quise hacer la prueba en un blog obsoleto que tengo.

    Grazie!

    $wp_version = ‘2.0’;
    $wp_db_version = 3308;

  • dabo

    hola amigo, lo mejor es que lo pruebes en una versión parcheada sin plugins, la manera de ver si tu ruta es visitble o no es tipeando la siguiente url

    https://www.daboblog.com/wp-settings.php

    Cambia https://www.daboblog.com por la ruta de tu wordpress y si la ruta te sale (cosa que he visto arriba) significa que tu servidor no está configurado como debería

    En ese caso puedes cambiar perfectamente unos archivos por otros pero M.Almeida de mangasverdes.es todavia se tomó más trabajo y ordenó mis archivos para que sea más fácil actualizarlo, encontrarás el link en su web.

    Como te digo no debería darte ninguna pega porque está comprobado por mucha gente, supongo que será porque como dices la versión está obsoleta

    Un saludo y suerte -:)

Comentarios cerrados.