我正在使用 Security Shepherd 作为培训工具,现在我正面临挑战,SQL Injection Escaping Challenge。
挑战:
当我在 MySQL 的本地数据库中像上面那样进行查询(只是使用不同的表名)时,它工作得很好(我假设 Shepherd 在这个挑战中使用 MySQL,因为它是我唯一的 DBMS 类型面对直到现在)。
知道为什么上述查询可能无法作为 SQL 注入工作吗?
挑战提示中提到的后端使用的查询是:
SELECT * FROM customers WHERE customerId="1" OR "1"="1";
'
该应用程序通过将其\'
作为对 SQL 注入的保护来逃避任何攻击。它不会改变"
.