Estoy haciendo algunas pruebas en una aplicación web y encontré una inyección SQL en un procedimiento almacenado. Es algo como esto:
Stored_procedure [input]
El procedimiento almacenado valida la entrada, debe ser un entero, pero puedo inyectar otra oración SQL como esta:
Stored_procedure 1;SELECT CURRENT_USER;
La aplicación web no me muestra el resultado de la segunda oración SQL, así que intenté ejecutar una inyección SQL basada en el tiempo:
Stored_procedure 1;WAITFOR DELAY '00:00:10';
No funcionó, porque la aplicación web escapa de las comillas, luego cambié mi Inyección de SQL:
Stored_procedure 1;WAITFOR DELAY (CHAR(48)+CHAR(48)+CHAR(58)+CHAR(48)+CHAR(48)+CHAR(58)+CHAR(49)+CHAR(48));
Esto tampoco funcionó, genera un error. ¿Podría ayudarnos a saber por qué no funciona o cómo puedo explotarlo?