¿Los ataques XSS con estilo WebGoat todavía funcionan?

5

Estoy realizando los ejercicios de WebGoat para actualizar mi conocimiento de los ataques XSS.

Específicamente, estoy haciendo el ejercicio XSS de la Etapa 1. Este ejercicio tiene una forma que deliberadamente no sanea la entrada. El video de la solución muestra cómo se usa la función de alerta de JavaScript para enviar un mensaje y la cookie de sesión.

La etapa 3 tiene un fragmento de código XSS integrado, que al ver un perfil mostrará el contenido de 'document.cookie'.

En cualquier navegador moderno, todos sin complementos, no puedo ejecutar esto. Puedo generar mensajes usando la alerta de JavaScript, pero nunca imprime el contenido de document.cookie

El tutorial en esta página para obtener cookies muestra que es posible imprimir el contenido de document.cookie en un mensaje de alerta de JavaScript.

Lo que me gustaría saber es por qué no puedo hacer lo mismo en una aplicación web XSS muy simple y deliberadamente vulnerable. ¿Hay alguna detección de XSS en todos los navegadores modernos que lo impida? He probado con las opciones para deshabilitar la seguridad web en IE, Firefox y Chrome y no hace ninguna diferencia.

editar:CosasqueheprobadotantoparaWebGoat5.4comoparaWebGoat6.0.1:

  • AccesoatravésdeFirefoxconunnuevoperfilpredeterminadoysincomplementos
  • Chromecon--disable-web-securityy/o–disable-xss-auditorargumentos
  • AccediendoatravésdeMantra
  • EstablecerelencabezadoX-XSS-Protectionen0enmissolicitudes.

¿WebGoatestátratandodeenseñarsobreunataqueXSSqueyanoesunaamenaza?

2daedición:

SegúnlarespuestadeMartin,intentéconfigurarelencabezadomanualmentecomoseveenlascapturasdepantallaacontinuación.Hemodificadoeltítulodelalecciónparaqueseaobvioqueelviolinistaestáinterceptandolapáginacorrectamente.

La cookie no está configurada como segura3 o httponer, pero se niega a ser leída desde cualquier navegador a través de JavaScript, a través de bookmarklet o Scratchpad. La cookie está configurada correctamente en el navegador y se puede ver en los diálogos de cookies de los navegadores.

¿Qué propiedad de esta cookie impide que se lea?

    
pregunta Sonny Ordell 27.02.2015 - 12:16
fuente

3 respuestas

5

Configurar el encabezado X-XSS-Protection: 0 es la solución correcta, pero debe agregar este encabezado en la respuesta , no en su solicitud. Pasos:

  • Asegúrese de tener una cookie real que no esté protegida con el indicador solo de HTTP. (Puede editar la cookie JSessionID por ejemplo)
  • Use un comando JS correcto para recuperar la cookie (pruébelo primero en la consola), por ejemplo: var a = document.cookie; alert (a) (nota: si tiene varias cookies, tendrá que dividirlos, asumo que solo tiene la cookie JSESSIONID)
  • Guarde el comando en el campo de la calle, con etiquetas de script: var a = document.cookie; alert (a) (Stackoverflow oculta las etiquetas de script, asegúrese de agregarlas)
  • Arranca el Fiddler antes de guardar. Interceptaremos la respuesta y agregaremos el encabezado X-XSS-Protection: 0 en la respuesta (si tiene la versión de desarrollador, probablemente podría agregarla en la fuente)
  • Intercepte la respuesta, edite los encabezados de respuesta, agregue el encabezado X-XSS-Protection: 0, presione CTRL + S solo para asegurarse, luego presione "ejecutar hasta completar".
  • Et voilà

Actualización : capturas de pantalla para aclaraciones.

  • Fiddler

*:

  • resultadowebgoat
respondido por el Michael 02.03.2015 - 09:02
fuente
4

Correcto, la mayoría de los navegadores principales ahora incluyen protecciones XSS incorporadas. Con respecto a posibles soluciones:

Puede deshabilitar esta función en Chrome iniciando el navegador con el interruptor "disable-xss-auditor". (es decir, C:\<PATH>\chrome.exe --args --disable-xss-auditor )

Otra opción es configurar un encabezado en el servidor web de alojamiento para deshabilitar dichas protecciones (ejemplo de Apache a continuación):

Conjunto de encabezados X-XSS-Protection: 0

Finalmente, podría utilizar un navegador de prueba de lápiz de aplicación web como OWASP Mantra.

enlace

    
respondido por el vaughank 27.02.2015 - 14:40
fuente
0

¿Podría mencionar la carga útil XSS que utilizó para imprimir el contenido de la cookie?
Además, en términos generales, además de los encabezados X-XSS, si una aplicación web tiene el indicador de cookie configurado solo para HTTP, el contenido de la cookie no está disponible para los scripts del lado del cliente, como un fragmento de código JavaScript o su XSS. carga, imprimiendo un mensaje de alerta vacío como la captura de pantalla que publicaste anteriormente.

    
respondido por el Aatif Shahdad 01.03.2015 - 17:33
fuente

Lea otras preguntas en las etiquetas