¿Por qué no es posible realizar una inyección SQL (nivel ALTO) en este ejemplo en la aplicación web Damn Vulnerable?

2
$query = " $sql = select * from users where id = '$id' " 

¿ $id=3' OR '1'='1 no interrumpirá la consulta? La duda surgió porque alguien afirmó que no se puede romper.

    
pregunta wanttomasterpython 09.04.2014 - 14:31
fuente

1 respuesta

2

El nivel alto está destinado a ser la implementación segura y debería ser inquebrantable.

Mirando el código fuente puede ver que hay verificación de que $id es un número.

if (is_numeric($id)){

        $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";

Por lo tanto, no es posible cambiar el parámetro id a nada que rompa el parámetro desde el contexto del valor de los datos y dentro del contexto de la consulta.

    
respondido por el SilverlightFox 16.04.2014 - 15:58
fuente

Lea otras preguntas en las etiquetas