¿Cuál es la diferencia entre estas consultas SQLi?

0

Estaba realizando un Pentest web y lo encontré cuando estaba haciendo sqli en un campo de búsqueda:

' or  1=1--     returns 15 results
' or '1'='1     returns 30 different results
' or '1'='1--   returns 0 results

¿Cuál puede ser la causa? Quiero decir, ¿cuál es la diferencia entre esas consultas?

    
pregunta A.Vadillo 25.10.2017 - 15:51
fuente

1 respuesta

0

El motivo de los diferentes resultados es que su primera inyección corta el resto de la consulta a través del comentario ( -- ).

Es probable que su última inyección no devuelva nada porque no es válida y provoca un error (debido al ' no cerrado).

La consulta en la que está inyectando probablemente tenga una estructura como esta:

... WHERE foo='your input' OR bar='something else'

No tiene que ser exactamente así, pero sí sabemos que tiene que haber algo después del punto en el que se está inyectando.

Por supuesto, en teoría, también podría ser que la búsqueda devuelva legítimamente esos resultados y no haya ninguna inyección (en este caso es poco probable). También deberías probar otras inyecciones, como ' and '1'='1 , ' and sleep(10)-- - , en realidad extraer datos, etc.

    
respondido por el tim 25.10.2017 - 16:16
fuente

Lea otras preguntas en las etiquetas