Si tratta di un tentativo di iniezione SQL?

48

Esaminando i log degli errori ho trovato molte richieste a un'app web in cui l'URL contiene:

/if(now()=sysdate(),sleep(10),0)/*'XOR(if(now()=sysdate(),sleep(10),0))OR'"XOR(if(now()=sysdate(),sleep(10),0))OR"*/

Ho letto che potrebbe essere una parte di un attacco ai siti web sviluppati in PHP che non usiamo. Inoltre stiamo usando un ORM per interrogare i nostri database.

Quindi questo è un tentativo di iniezione SQL?

    
posta Tony 03.08.2015 - 11:35
fonte

2 risposte

63

Questo è molto probabilmente un'iniezione SQL cieca, che verifica se sei vulnerabile a SQL Injection controllando se il tuo server impiega il tempo specificato o più per rispondere alla richiesta. Questo in realtà non sta modificando i dati né esponendo nulla; sta solo controllando se sei vulnerabile.

Vale anche la pena notare che questo è specifico per i database MySQL, poiché le sintassi if e sleep sono quelle di quel motore db.

Se l'attacco è isolato, probabilmente sei stato "sondato" da uno scanner automatico di vulnerabilità che sta preparando un attacco su larga scala, quindi se la tua webapp non è vulnerabile non hai nulla di cui preoccuparti.

Tuttavia, se ricevi richieste più strane con diversi modelli di attacco, potresti essere il bersaglio specifico di tali aggressori e intraprendere azioni per prevenire tutti gli attacchi che potrebbero avere esito positivo.

Per ulteriori informazioni, consulta Attacchi per attacchi SQL ciechi basati sul tempo .

    
risposta data 03.08.2015 - 11:55
fonte
10

I dati che hai postato sembrano essere simili a quelli che un utente malintenzionato potrebbe utilizzare per la ricerca di problemi di SQL Injection ciechi.

Una tecnica comune per trovare questi problemi è di avere un test condizionale che, se è vero, causa il timeout o la funzione sleep da eseguire. In questo modo l'attaccante può dire se ha avuto successo osservando quanto tempo impiega il sito a rispondere (anche se vale la pena notare che questa tecnica può essere un po 'soggetta a errori se il sito non risponde o risponde lentamente a un altro, non correlato, motivo)

Il codice che hai menzionato sembra fare quel tipo di test logico seguito da un'istruzione sleep, quindi potrebbe essere un tentativo di sfruttare SQL Injection. Alcuni tipi di attacker faranno esplodere questi colpi in cerca di hit in modo che non possano essere un attacco molto mirato e quindi non sono propensi a lavorare sul tuo sito.

    
risposta data 03.08.2015 - 11:44
fonte

Leggi altre domande sui tag