Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Security
Code

Cross-Site Scripting en WordPress: consejos prácticos para la seguridad de su sitio

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Cross-Site Scripting in WordPress.
Cross-Site Scripting in WordPress: What Is XSS?

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En esta serie, estamos dando un vistazo a cómo a garantizar nuestros proyectos WordPress de XSS - cross-site scripting. En el primer artículo de la serie, nos define qué comandos multisitio en realidad es, entender cómo funciona, y por qué es peligroso.

También pasamos tiempo discutiendo cómo esto repercute en nuestros esfuerzos de desarrollo de WordPress día a día y lo que podemos hacer sobre él. Aunque hay algunas funciones WordPress tiene disponible para ayudar a validar y sanear datos, hay más trabajo que podemos hacer para nuestros proyectos.

En este último artículo, vamos a echar un vistazo a algunos consejos que podemos seguir y algunas pruebas que podemos administrar para asegurar nuestro trabajo contra los ataques de XSS.


Los Conceptos Básicos de Pruebas XSS

En términos generales, la manera en que usted va acerca de la prueba tu sitio para vulnerabilidades cross-site script es encontrar en cualquier parte del sitio o aplicación que acepta entrada de usuario.

Obviamente, esto vendrá en forma de campos de entrada, áreas de texto o similares.

Si en el sitio no se realiza una esterilización adecuada y/o una validación, normalmente tendrás éxito encontrando vulnerabilidades; sin embargo, si el sitio está gestionando adecuadamente los datos de entrada, probablemente no verás ningún resultado a tus esfuerzos.

Echemos un vistazo a varios casos que podemos administrar en nuestros propios sitios (o incluso en otros, ¡aunque será bajo tu propia responsabilidad!).

1.Localizar una Vulnerabilidad Cross-Site Scripting

Una de las primeras cosas que podemos hacer para localizar una vulnerabilidad es intentar inyectar un código que determine si existe o no una vulnerabilidad.

El código en cuestión es el siguiente:

Coloca este código en cualquier campo de entrada y envíalo.

Si existe una vulnerabilidad, entonces la palabra que te será devuelta será "XSS". Si no te devuelve nada, es muy probable que estés seguro (aunque esto no está 100% garantizado); sin embargo, si te devuelve, probablemente signifique la existencia de una vulnerabilidad que tú, o alguien más malévolo, sería capaz de aprovechar.

2. Intentos Cross-Site

En el artículo anterior, discutimos la política del mismo origen, la cual básicamente dicta que un sitio no debería ser capaz de solicitar recursos procedentes de cualquier dominio distinto a aquel en el que él mismo está ubicado.

Para intentar ejecutar código de un servidor remoto, o un servidor que no pertenezca al mismo origen, puedes ejecutar el siguiente código:

Ten en cuenta que el prefijo para el caso de prueba no es un error tipográfico. Se requiere realmente para comprobar la vulnerabilidad. Si realmente existe una vulnerabilidad, una cookie del navegador del dominio remoto será mostrará; de lo contrario, tampoco verás nada o tu consola podría devolver un mensaje sobre la política del mismo origen.

Gracias a Janne por este método en particular.

3. Atributos de Imagen

Por último, una de las vulnerabilidades más conocidas intenta ejecutar código JavaScript en un atributo de una etiqueta 'img'.

Por ejemplo, creando elementos como estos:

Revelaría una vulnerabilidad que realmente mostrará un diálogo de alerta con la palabra 'XSS' como mensaje en lugar de una imagen rota.

Simple, ¿no? Sin embargo, sólo se necesita una vulnerabilidad para exponer un exploit.


Otros Recursos

Un Wiki de Ataques

OWASP

La cosa es que, esta es sólo la punta del iceberg en lo referente a pruebas XSS. De hecho, se necesitaría una wiki completa para documentar las diferentes vulnerabilidades que existen por ahí.

De hecho, eso es exactamente lo que el proyecto Open Web Application Security tiene como objetivo hacer: documentar las diferentes vulnerabilidades XSS existentes y cómo comprobar su existencia en nuestros sitios. Puedes visitar la lista completa, ver la definición de los ataques, así como administrarlos.

Vulnerabilidades HTML5

HTML5 Security

¡Pero eso no es todo! Conforme surgen nuevas tecnologías, HTML5 por ejemplo, hay un montón de cosas adicionales a tener en cuenta.

Aunque puede parecer un poco extraño que un lenguaje de marcado pueda ser susceptible a ataques de scripts entre sitios web, es lógico teniendo en cuenta algunos de los atributos que admiten los nuevos elementos.

Caso de estudio:

  • Los elementos de los formularios admiten un atributo formaction que es capaz ejecutar JavaScript
  • Los elementos para campos entrada admiten un atributo onfocus que también puede ejecutar JavaScript
  • El nuevo elemento de vídeo admite un atributo poster que también podría ejecutar JavaScript

Concedido, no son aplicables a todos los navegador, pero es importante conocerlos para que puedas hacer pruebas correctamente en los correspondientes navegadores.

Dicho esto, puedes encontrar una completa ficha de vulnerabilidades conocidas y los navegadores a los que afectan principalmente en the HTML5 security site.

Ha.ckers

Hackers

Uno de los sitios de recursos XSS con más antigüedad de la web es Ha.ckers.org y tienen una ficha sobre vulnerabilidades XSS especialmente útil.

En pocas palabras, además de ofrecer un diccionario de vulnerabilidades conocidas, su ficha codificará automáticamente tu XSS entre varios tipos de codificación, por ejemplo Hex, decimal, Base64 y así sucesivamente de forma que también tu mismo puedas intentar inyectar esas traducciones en tu aplicación.

Después de todo, la mitad de lo que concierne a la seguridad consiste en asegurarse de que todos los tipos de entrada estén correctamente desinfectados, escapados y validados, no sólo en el caso hipotético.


Conclusión

Obviamente, el campo de cross-site scripting está constituido por muchos tipos de vulnerabilidad que no se limitan a un solo navegador, y mucho menos una sola versión del navegador. Por suerte, existen un montón de recursos, fichas, tutoriales y otros materiales educativos a nuestra disposición, no sólo para que seamos conscientes y estemos alerta sobre lo que hay por ahí, sino también para conocer cómo podemos prevenirlos.

Y aunque este artículo está específicamente orientado hacia los desarrolladores de WordPress, las tácticas y técnicas trascienden WordPress y son aplicables a cualquier persona que esté creando una aplicaciones web.

Por último, me gustaría ofrecer unas palabras de agradecimiento a Janne Ahlberg por inspirarme con el contenido de esta serie. Él es un especialista en seguridad que realiza una excelente labor XSS que transmite a Envato, así que si estás interesado en este tema y sobre todo si estás interesado en promocionar tu trabajo en uno de los marketplaces de Envato, te recomiendo que sigas su blog.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.