Tutte le iniezioni SQL sono sfruttabili tramite attacchi basati sul tempo?

1

Supponiamo che io stia scappando per le iniezioni SQL, invece di provare tutti gli altri approcci (basati su errore, basati su booleani, basati su unione, basati sullo stack), direi al mio motore di cercare solo in base al tempo tutti quelli che li rilevano ? Ad esempio: sqlmap -u URL --batch --technique = T

Ho l'impressione che time-based trovi tutto SQLi (a meno che il server non stia specificatamente filtrando SLEEP o WAITFOR ma non AND cosa che non succederebbe realmente) e una volta trovato, si dovrebbe cercare di trovare un metodo di estrazione più rapido (cercare la base booleana dopo aver già visto che è iniettabile a tempo). O prima vengono provati gli altri metodi, perché sono più veloci da testare.

    
posta whatever489 14.03.2017 - 20:20
fonte

1 risposta

2

Ci sono sicuramente delle eccezioni. Mentre il sonno può ad esempio funzionare per iniezioni in order by , non funziona facilmente in limit :

select * from pages limit 1,sleep(1); // doesn't work

Ovviamente, puoi formulare ancora un'iniezione che contiene il sonno, ma suppongo che sqlmap non abbia impostazione predefinita durante la scansione.

Mancherete anche iniezioni in cui il server filtra tutte le parole chiave SQL, ma consente comunque input come ' -- - .

Come indicato nei commenti, non funzionerà anche se il DBMS non supporta una funzione simile al sonno o se si sta utilizzando la funzione sbagliata.

Sarà anche piuttosto lento (che potrebbe essere o non andrà bene) e soggetto a errori (a volte le richieste richiedono solo un po 'di tempo, specialmente se stai inviando un sacco alla volta).

    
risposta data 14.03.2017 - 21:06
fonte

Leggi altre domande sui tag