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 "
.