Intentando entender cómo usar el comentario en la inyección SQL

1

Estoy tratando de inyectar una consulta básica, pero creo que me estoy perdiendo cómo comentar el final de esas consultas.

Es difícil usar # o --' , pero todavía estoy terminando con ese tipo de error:

  

Error de sintaxis o infracción de acceso: 1064 Tienes un error en tu sintaxis de SQL; revise el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de 'TABLE user;' ORDER BY c2_.creationDate DESC 'en la línea 1

Entonces, ¿cuál es la forma correcta de evitar esa seguridad?

¿Qué estoy haciendo mal cuando escribí:

http://esgi-3.futest.com/subject/12%20UNION%20SELECT%20*%20FROM%20TABLE%20user%20;--'

Y esto es todo el error que recibo:

  

Se produjo una excepción al ejecutar 'SELECT s0_.text AS text,   s0_.creationDate AS creationDate, s0_.private AS private,   u1_.firstName AS firstName, u1_.lastName AS lastName, s0_.user AS   usuario, c2_.userId AS userId24, c2_.subjectId AS subjectId25 FROM   Asunto s0_ Usuario interno u1_ ON s0_.user = u1_.id COMENTARIO IZQUIERDO comentario   c2_ ON s0_.id = c2_.subjectId IZQUIERDA ÚNICA usuario u3_ ON c2_.userId =   u3_.ID DONDE s0_.id = 12 UNION SELECT * DESDE LA TABLA usuario; - 'ORDENAR POR   c2_.creationDate DESC ': SQLSTATE [42000]: Error de sintaxis o acceso   violación: 1064 Tiene un error en su sintaxis SQL; revisar el manual   que corresponde a la versión de su servidor MySQL para la sintaxis correcta   use cerca de 'TABLE user; -' ORDER BY c2_.creationDate DESC 'en la línea 1

    
pregunta Baldráni 13.02.2017 - 11:06
fuente

1 respuesta

3

Aquí hay varios errores:

  • La sintaxis de una declaración de selección es SELECT [COLUMNS] FROM [TABLE] , pero estás escribiendo SELECT [COLUMNS] FROM TABLE [TABLE] .
  • Estás inyectando un ; , pero eso no es obligatorio ni válido para la mayoría de las API.
  • Si bien puede usar * en una selección de unión, es muy poco probable que ambas tablas tengan la misma cantidad de columnas, por lo que es probable que no funcione.
  • Tiene razón en que no puede usar -- , pero tener para agregar un comentario real. Sin embargo, no usaría ' . Es probable que sea válido, pero puede estar filtrado, etc. Use # o agregue una cadena diferente, por ejemplo, -- - , -- foobar etc.

Dando esto, esto debería funcionar:

1 union select 1,2,3 from user -- -

Es probable que el recuento de columnas sea incorrecto y que usted deba ajustar.

    
respondido por el tim 13.02.2017 - 11:39
fuente

Lea otras preguntas en las etiquetas