Iniezione SQL con query di istruzioni singole

6

Supponiamo di avere una query vulnerabile come questa:

var q = 'SELECT x FROM y WHERE id = ' + req.body.id + ' ORDER BY date DESC;';

Ai fini di questa domanda, req.body.id potrebbe essere qualsiasi parametro intero che non sia controllato a caratteri poiché tutto su HTTP è una stringa.

Poiché l'estensione MySQL disabilita le query a più istruzioni per impostazione predefinita, non posso fare qualcosa del tipo:

http://example.net/foo?id=1;INSERT INTO y VALUES (things...);--

È possibile eseguire una istruzione di manipolazione dei dati (come INSERT, UPDATE, DELETE) con questa query vulnerabile?

    
posta Cory Carter 23.10.2014 - 04:58
fonte

1 risposta

4

L'inserimento di un'istruzione stack-query è possibile solo se l'applicazione di destinazione utilizza Interfaccia multi-query MySQL . La stragrande maggioranza di SQL injection non consente l'impilamento delle query. L'impilamento delle query è utile, ma puoi accedere al database e persino inserire una shell senza di essa. SQLMap può eseguire questi attacchi.

Il raggruppamento delle query viene utilizzato più comunemente nella documentazione di SQL injection piuttosto che nel mondo reale. Questo è probabilmente perché è più semplice spiegare l'iniezione di sql usando una dimostrazione di stacking di query.

    
risposta data 23.10.2014 - 05:37
fonte

Leggi altre domande sui tag