¿Las pruebas fuzz producen resultados diferentes en comparación con las pruebas manuales?

1

Estoy probando una API y un parámetro es vulnerable a la inyección de SQL. Cuando ejecuto el fuzzer de OWASP ZAP en este parámetro, la entrada "; o 1 = 1" da como resultado una explotación exitosa de la inyección de SQL. Sin embargo, el suministro manual de esta entrada da como resultado un código de error de Oracle y el exploit no tiene éxito.

¿Es el caso entonces que los fuzzers pueden resultar en explotaciones exitosas para ciertas entradas que las pruebas manuales no pueden? Estoy tratando de entender más sobre los fuzzers y me parece que los fuzzers pueden generar ciertas condiciones que las pruebas manuales no pueden generar. ¿Es esto correcto? Si es así, ¿por qué?

    
pregunta Earthling 10.05.2016 - 10:04
fuente

1 respuesta

3
  

[I] t me parece que los fuzzers pueden generar ciertas condiciones que las pruebas manuales no pueden generar.

No, no pueden. El servidor no sabe si una solicitud HTTP se origina desde un fuzzer como ZAP, un navegador o cualquier otra cosa siempre y cuando envíen exactamente la misma solicitud HTTP.

Las palabras clave aquí son exactamente iguales . Como no sabe lo que sucede en el servidor, cualquier cosa podría afectar el resultado. Mire la solicitud HTTP que envía desde ZAP (consulte demo ) y mira la solicitud HTTP que envías manualmente. Si está utilizando un navegador para las pruebas manuales, solo use las herramientas del desarrollador para verlo. Un enfoque alternativo es utilizar un programa como WireShark para inspeccionar las solicitudes.

Cuando tengas las dos solicitudes frente a ti, compáralas. ¿Dónde está la diferencia? Esa es probablemente la solución a este misterio.

Una explicación alternativa sería un comportamiento aleatorio en el servidor, o un cambio de comportamiento porque la vulnerabilidad fue corregida. Pruebas repetidas podrían descartar esas.

    
respondido por el Anders 10.05.2016 - 11:33
fuente

Lea otras preguntas en las etiquetas