$result = $db->query('SELECT * FROM USERS WHERE password="'.$_GET['password'].'"');
if($result->fetchArray()) $step1=true;
$result = $db->query('SELECT * FROM USERS WHERE password=\''.$_GET['password'].'\'');
if($result->fetchArray()) $step2=true;
$result = $db->query('SELECT * FROM USERS WHERE password='.$_GET['password']);
if($result->fetchArray()) $step3=true;
Questo codice fa parte di una sfida per il ctf che sto facendo rigorosamente a scopo di apprendimento e non sono abbastanza sicuro su come ottenere che ognuna di queste istruzioni SQL sia valutata come vera.
Alcuni pensieri che ho avuto è stato fare una dichiarazione di inserimento in cui la password sarebbe uguale alla dichiarazione di iniezione, ma non sono sicuro se questo è un buon approccio. Se possibile, vorrei ottenerlo senza modifiche al database di back-end.
Non cerco davvero una risposta diretta, ma forse qualche consiglio.
Apprezzo l'aiuto.
EDIT : $ step1, $ step2 e $ step3 devono tutti valutare true