Un amigo mío construyó una aplicación web que estoy probando por diversión. Noté que le permite a un usuario establecer el límite de una consulta determinada, y ese límite no está saneado.
Por ejemplo, puedo elegir cualquier número o cadena que me guste como límite. Me doy cuenta de que esto es inyección SQL , y puedo inyectar fácilmente comandos SQL, pero ¿es realmente posible extraer cualquier información o ¿Algún daño con un LIMIT
?
Ejemplo de la consulta:
SELECT * FROM messages WHERE unread = 1 LIMIT **USER INPUT HERE**
Entiendo que si la inyección estuviera en la cláusula WHERE
, podría haber hecho fácilmente un UNION SELECT
para extraer cualquier información, pero ¿es realmente posible si la entrada del usuario fue después del límite?
Para obtener más información, mi amigo está utilizando el DBMS MySQL , por lo que realmente no puede ejecutar dos consultas como :
SELECT * FROM messages WHERE unread = 1 LIMIT 10;DROP TABLE messages--
No es posible.