SQL che inietta un modulo di ricerca che utilizza la modalità booleana

4

Sto testando un'app Web e potrei ottenere errori Mysql inserendo "nel campo di ricerca:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' in boolean mode)' at line 1

Tuttavia, quando eseguo il solito test, inserendo "" e 1 = 1-- "nel campo di ricerca, ottengo questo:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and 1=1--' in boolean mode)' at line 1

Ma questo avrebbe dovuto funzionare. Ho notato che si aggiunge "'in modalità booleana" ad ogni errore che mi dà. La mia domanda è, qual è il problema qui e come posso ottenere le mie dichiarazioni eseguite, senza ottenere questo errore?

    
posta Wise 14.02.2013 - 21:07
fonte

1 risposta

11

Trovo che ' or 1=1-- sia utile in meno dell'1% di SQL injection che trovo, questo payload è comunemente visto negli esempi di SQL Injection perché è un'affermazione molto semplice. Il problema che probabilmente stai riscontrando è che il tuo commento non è corretto. Il -- deve seguire un singolo spazio o non è in realtà un commento, quindi ' or 1=1-- 1 è un commento che è compatibile con molti tipi di database e può sopravvivere a un ritaglio di spazio bianco. Ci sono molti altri commenti mysql da scegliere .

Un test SQL Injection migliore per un database MySQL potrebbe essere: ' or sleep(10)/* . Se la pagina impiega 10 secondi o più per caricare il suo vulnerabile, quindi esegui il backup con ' or sleep(0)/* e ritorna molto rapidamente, quindi sai che può essere sfruttato con injection sql cieco .

A questo punto ho intenzione di prendere quella richiesta HTTP e utilizzare SQLMap in modalità guidata per sfruttare la vulnerabilità e scaricare l'intero database. SQLMap può anche eseguire file-io sotto MySQL utilizzando load_file() e into outfile . Anche la modalità shell SQL interattiva è molto utile. Se desideri eseguire il debug di un payload SQL senza utilizzarlo sul tuo target suggerisco sqlfiddle .

    
risposta data 14.02.2013 - 21:21
fonte

Leggi altre domande sui tag