Come posso sfruttare un'iniezione SQL basata sul tempo senza utilizzare le virgolette singole?

-4

Sto facendo dei test su un'applicazione web e ho trovato un'iniezione SQL in una stored procedure. È qualcosa del genere:

Stored_procedure [input]

La stored procedure convalida l'input, deve essere un numero intero, ma posso iniettare un'altra frase SQL come questa:

Stored_procedure 1;SELECT CURRENT_USER;

L'applicazione web non mi mostra il risultato della seconda frase SQL, quindi ho provato a eseguire un'iniezione SQL in base al tempo:

Stored_procedure 1;WAITFOR DELAY '00:00:10';

Non ha funzionato, perché l'applicazione web scapi le sigle-quotes, quindi ho cambiato la mia SQL Injection:

Stored_procedure 1;WAITFOR DELAY (CHAR(48)+CHAR(48)+CHAR(58)+CHAR(48)+CHAR(48)+CHAR(58)+CHAR(49)+CHAR(48));

Anche questo non ha funzionato, genera un errore. Potresti aiutarti a capire perché non funziona o come posso sfruttarlo?

    
posta hmrojas.p 16.09.2016 - 02:04
fonte

1 risposta

2

Esistono diversi modi per superare lo scraping delle istruzioni SQL, soprattutto se non esegue lo scraping (o l'igienizzazione) del tuo input in modo ricorsivo. A volte puoi inserire l'input in incapsulandolo con altri personaggi che conosci verranno filtrati o, a volte, semplicemente mettendo una wack davanti a ciascun personaggio limitato o filtrato. Per molto altro sull'argomento ci sono un sacco di ottimi esempi in The Web Application Hacker's Handbook, di Wiley Books, e lo consiglio vivamente. Seriamente aumentato il mio SQLi e altri giochi di cracking web-app.

    
risposta data 16.09.2016 - 09:59
fonte

Leggi altre domande sui tag