Reconocer el sitio vulnerable a la inyección de SQL

1

Aunque entiendo el concepto de inyección de SQL y he realizado explotaciones simples (sitios de desafío de pirateo simples y cosas por el estilo), me pregunto si uno de los sitios administrados por mi empleador es vulnerable.

A diferencia de mi experiencia anterior (relacionada estrictamente con los formularios abiertos para inyección), parece que el sitio está enviando declaraciones SQL a través de la URL. Al manipular la URL de una página (que está en la forma de enlace ) reemplazando = 10 con = * por ejemplo, obtengo un error en la página:

Error in SELECT * FROM thefaq WHERE 1  AND thefaq.site=1  AND  thefaq.id=* : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*' at line 1

Error in    SELECT * FROM sitecontent WHERE

etc., etc., el error continúa bastante.

Claramente, las declaraciones de SQL se envían a través de la URL, pero ¿esto hace que el sitio sea vulnerable por definición, es decir, es posible que tenga lugar una validación de entrada que elimine cualquier declaración de SQL realmente maliciosa de la URL antes de ser ejecutada?

Por lo que puedo decir, si la URL procesa las sentencias de SQL, todo vale, por lo tanto, es vulnerable, pero quiero asegurarme de esto antes de hacer el ridículo al informar a mi empleador.

---- edit ----

Mencioné esto al gerente apropiado que no parecía particularmente estresado al respecto. Explicar que esta vulnerabilidad podría resultar en una degradación o algo peor: la información del usuario y las posibles contraseñas que están siendo expuestas (asumiendo que están mal escritas es probablemente una ilusión) no lo impresionaron. El sitio web no es una prioridad (ni está desviando ningún presupuesto para solucionar el problema, supongo).

Thx para respuestas!

    
pregunta user3244085 26.02.2014 - 12:40
fuente

1 respuesta

2

El hecho de que pueda introducir parámetros en la URL no es una vulnerabilidad en sí. (Por ejemplo, me encanta imdb.com por la capacidad de controlar con esos parámetros)

El hecho de que el error sql se envíe al usuario Y el hecho de que la consulta se ejecute en realidad en la base de datos muestra que el sitio podría ser vulnerable a la inyección de sql .

Esa simple declaración es suficiente para mostrarle a tu superior que se debe hacer algo. Para un mejor efecto, es posible que desee mostrar un caso de explotación completo en el que ejecuta con éxito alguna consulta que no debe.

    
respondido por el Sandokas 26.02.2014 - 12:54
fuente

Lea otras preguntas en las etiquetas