Desafío de escape de inyección de SQL Security Shepherd

8

Estoy usando Security Shepherd como herramienta de entrenamiento y ahora estoy en el desafío Desafío de escape de inyección SQL . El desafío es como se puede ver a continuación:

Cuando hago una consulta como la de arriba (solo con diferentes nombres de tablas) en una base de datos local en MySql, funciona bien (supongo que Shepherd usa Mysql en este desafío, ya que es el único tipo de DBMS que he enfrentado hasta ahora).
¿Alguna idea de por qué la consulta anterior podría no funcionar como una inyección SQL?

La consulta utilizada por el backend como se menciona en la sugerencia del desafío es:
SELECT * FROM customers WHERE customerId="1" OR "1"="1"; La aplicación está escapando a cualquier ' al hacer que \' sea una protección contra la inyección de SQL. No cambia el " .

    
pregunta J.Doo 29.10.2016 - 20:43
fuente

3 respuestas

0

Acabo de encontrar que si alguien cambia en admin perfila el diseño del módulo al modo Torneo, entonces aparece una nueva pestaña. Entonces la respuesta a lo anterior es: \'or"1"="1"; -- .

    
respondido por el J.Doo 29.10.2016 - 21:17
fuente
0

Estas respuestas son incorrectas. La respuesta correcta a este problema es:

" or ""="

Motivo: un pirata informático inteligente podría obtener acceso a los nombres de usuario y contraseñas en una base de datos simplemente insertando "o" "=" en el cuadro de texto de nombre de usuario o contraseña. El resultado SQL es válido. Devolverá todas las filas de los clientes de la tabla, ya que DONDE ""="" siempre es verdadero.

    
respondido por el Troy Zuroske 01.02.2017 - 06:43
fuente
0

Las respuestas anteriores son correctas ya que todas realizan una inyección con éxito, ya que un pirata informático inteligente está buscando una inyección que funcione. Una vez que un pirata informático encuentra una inyección que funciona, no continuarán hurgando con otras posibles consultas, sino que se extenderán a la que funciona. También puede hacer una lógica de cálculo para obtener el mismo resultado, como: "O" 1 + 1

    
respondido por el LampShade 08.08.2017 - 15:29
fuente

Lea otras preguntas en las etiquetas