Sto utilizzando Security Shepherd come strumento di formazione e ora sono in sfida Sfida di escape di SQL Injection . La sfida è come può essere visto di seguito:
Quando eseguo una query come quella sopra (solo con nomi di tabelle differenti) in un database locale in MySql, funziona perfettamente (sto supponendo che Shepherd utilizzi Mysql in questa sfida poiché è l'unico tipo di DBMS che ho affrontato fino ad ora).
Qualche idea sul perché la query sopra potrebbe non funzionare come un'iniezione SQL ??
La query utilizzata dal backend come menzionato nel suggerimento della sfida è:
SELECT * FROM customers WHERE customerId="1" OR "1"="1";
L'applicazione sta eseguendo l'escape di qualsiasi '
rendendolo \'
come protezione contro l'iniezione SQL. Non cambia "
.