Sto esplorando una vulnerabilità in un sito Web PHP che è fondamentalmente pieno di iniezioni SQL. Con SQLMap, sono riuscito a scaricare tutte le tabelle e ottenere alcune informazioni di base (nome utente, nome DB, nome host, anche se sembra abbastanza inutile perché il server DB non è disponibile esternamente). Il mio obiettivo è modificare i dati in una tabella specifica, non menzionati nelle query SQL iniettabili. Ho provato l'opzione --db-shell
di SQLmap, ma ho scoperto che non posso fare nulla oltre a SELECT perché la combinazione PHP + MySQL non consente query impilate.
Quindi la mia domanda. Dato uno dei seguenti frammenti:
mysql_query("SELECT * FROM sometable WHERE id=".$_GET['id']);
mysql_query("INSERT INTO sometable (id) VALUES (".$_GET['id'].")");
mysql_query("UPDATE sometable SET id= ".$_GET['id']);
mysql_query("DELETE FROM sometable WHERE id=".$_GET['id']);
Posso modificare (eliminare, inserire, aggiornare) dati dall'esterno di qualcosa, senza trucchi LOADFILE / INTO OUTFILE (e simili)? La sintassi MySQL mi consente di farlo in questo caso? Se la risposta è "dipende", come dovrebbe apparire la sintassi della query? Non sono un DBA su questo host. Non ci sono anche stored procedure sul sito web, solo alcune cose molto semplici e amatoriali che potresti imparare da un singolo libro che non menziona nemmeno la sicurezza.