Sto cercando di enumerare un database, creato appositamente allo scopo di imparare le iniezioni SQL. Sto cercando di scoprire il numero di colonne che potrebbe utilizzare una determinata istruzione select. Lo faccio con "Ordinal" ordinando il set di risultati. Quindi, comincio con ORDER BY 1, .. BY 2 e così via fino a quando ricevo un errore che restituisce "Colonna sconosciuta". Ora, per un'iniezione come questa:
localhost/sqli?id=2' order by 7 AND '1
L'istruzione SQL risultante è:
mysql> SELECT * FROM table_name where id='2' order by 7 and '1';
Restituisce un set di risultati, ma mi aspettavo che generasse un errore restituendo "unknown column '7' in 'order clause' ".
Perché non genera l'errore. La tabella con cui sto lavorando ha solo 3 colonne.