Salida DAST en Burp y entendiéndolo

2

Recientemente he actualizado a la versión más reciente de Burp que incluye las nuevas herramientas DAST. Recibo informes de la herramienta que ha encontrado Inyección de Javascript basada en DOM, pero tengo problemas para digerir la salida:

  

Los datos se leen desde textarea.value y se pasan a eval.   El elemento de origen tiene id pastBoxField y nombre pastBoxField.   El valor anterior llegó al sumidero como:   (dkezib% 2527% 2522 '' "/ dkezib / > xrpjqc &)

En las publicaciones de Portswigger aquí: enlace El ejemplo parece mucho más completo, con el valor real Inyectado y la prueba de concepto. La salida que estoy recibiendo no tiene nada de esto. Solo lo que se encuentra en las notas de bloque anteriores y el seguimiento de pila en el origen y el sumidero.

No puedo, por mi vida, recrear esto o confirmar si es falso positivo. No tengo el valor inyectado por lo que, aunque podría ser el valor alcanzado en el sumidero, no puedo verificar esto. Soy relativamente nuevo en este tipo de pruebas, así que estoy seguro de que hay una manera de probar esto manualmente. He estado tratando de encontrar una descripción detallada que ilustre tal cosa, pero no puedo encontrarla. Obviamente el de Portswigger, pero proporciona más información que mi ejemplo.

¿Puede alguien indicarme la dirección correcta de cómo confirmar manualmente si esto es un falso positivo o no? No me importa leer a través de la investigación o algo así. Me doy cuenta de que puedes depurar en Firefox pero no puedo averiguar cómo rastrear lo que necesito. Por favor, siéntase libre de gritar, regañar o señalar que me falta algo obvio si ese es el caso.

    
pregunta NewDev 29.10.2018 - 18:16
fuente

1 respuesta

1

No he usado el nuevo escáner DAST, pero parece que inyectó (dkezib%2527%2522'''"/dkezib/>xrpjqc&) en el campo / variable de entrada, ejecutó el javascript y encontró que alcanzó el eval() sin escaparse. Por lo general, esos son todos los ingredientes que necesita para la inyección de javascript.

Comenzaría a jugar con variaciones de alert(1) y vería si puedes obtener una ventana emergente. Probablemente no funcionará la primera vez y tendrás que echar un vistazo más de cerca a la fuente de la página para descubrir por qué. Después de una hora de esto, generalmente he tenido éxito en obtener una ventana emergente (vulnerabilidad confirmada), o entiendo el código lo suficientemente bien como para estar seguro al 90% de que no es vulnerable.

    
respondido por el Mike Ounsworth 29.10.2018 - 19:04
fuente

Lea otras preguntas en las etiquetas