Antes de que un atacante intente explotar eval (), ¿cómo sospecharían que está siendo utilizado por una aplicación de destino?

1

Estoy haciendo la pregunta en el contexto de XSS RCE / RFI como resultado de la explotación de eval() del lado del servidor. A menudo se recomienda evitar su uso, pero no me queda claro cómo se intentaría explotar algo antes de averiguar si existe o no.

¿Un atacante simplemente inyectaría un código en cada cadena que se pasa al servidor (no solo las entradas del usuario) y luego verifica si la aplicación se rompe de alguna manera?

    
pregunta Guybrush Threepwood 06.12.2015 - 20:47
fuente

1 respuesta

1

El atacante no lo sabe directamente, pero escanea el sitio web con sondas para detectar vulnerabilidades RCE / RFI / LFI e inyecta un código específico en las solicitudes y en los parámetros GET / POST únicos.

Cuando saben que el resultado cambia según la entrada del usuario suministrada, prueban parámetros únicos con diferentes códigos para diferentes ataques.

eval() en su mayoría no es necesario y nunca debe usarse para una entrada que pueda ser manipulada por los atacantes.

Esto también se menciona en la documentación oficial de PHP, donde advierten sobre los riesgos.

enlace

  

Precaución

     

La construcción del lenguaje eval () es muy peligrosa porque permite la ejecución de código PHP arbitrario. Se desaconseja así su utilización. Si ha verificado cuidadosamente que no hay otra opción que utilizar este constructo, preste especial atención a no pasarle ningún dato proporcionado por el usuario sin haberlo validado correctamente de antemano.

Como desarrollador web, nunca he usado ni necesitado eval() .

Pero esto aún no está relacionado con JavaScript, incluso si existe eval() en JavaScript, pero para ejecutar solo el código JavaScript.

    
respondido por el Daniel Ruf 06.12.2015 - 22:02
fuente

Lea otras preguntas en las etiquetas