L'errore che ricevi dalla pagina non ha nulla direttamente da fare con il tentativo di iniezione SQL. Sembra che il sito impieghi un casting semplice per garantire che id
sia numerico, quindi la query diventa una query valida che non restituisce nulla a meno che non invii un numero semplice:
$id = (int)$_GET['id'];
In altre parole, non tutte le query che puoi creare dalla riga dell'URL sono automaticamente completamente iniettabili SQL.
L'errore che ottieni è quello della query che non restituisce nulla, perché non ci sono righe con un tipo di zero.
Questo tipo di "whitelisting semplice" non è solo sfruttabile, perché l'exploit non raggiungerà mai il livello SQL; anche se altre parti del sito web potrebbero essere (l'uso delle funzioni mysql_ * e la mancanza di controlli per il fallimento della query non sono dei buoni segni).
Tuttavia, penso che sarebbe modo meglio cercare un sito web di test di SQL injection (ne conoscevo uno ma ora è apparentemente offline, il dominio in vendita) e lasciare la brava gente di Montreuil-sur-Mer da solo con i loro indirizzi bonne . In un pizzico, ci sono diverse esercitazioni che è possibile implementare su una macchina virtuale per testare i diversi approcci e le diverse piattaforme SQL.