Actualmente estoy estudiando SQLi de un libro que no mencionaré para evitar problemas de derechos de autor. El libro contiene muchos ejemplos de cadenas / código de MSSQL, MySQL, Oracle, etc.
Actualmente estoy asombrado respecto a cuál sería la sintaxis equivalente en PHP / MySQL para este ejemplo, dado solo en .asp (suponiendo una base de datos de MSSQL). Esta es una cadena de inyección como se usa en la barra de direcciones del navegador, usando ORDER BY
para enumerar el número de columnas en una tabla, iterando a través de ORDER BY 1
, ORDER BY 2
etc. hasta producir un error:
hxxp://someserver.com/products.asp?id=12+order+by+1
Entonces, ¿la sintaxis equivalente en PHP / MySQL sería algo como:
hxxp://someserver.com/products.php?id=12 order by 1
Estoy pensando que el espacio en blanco está bien aquí? O quizás:
hxxp://someserver.com/products.php?id=12%20order%20by%201
He escrito una aplicación para XAMPP para probar, pero no puedo producir un error, por lo que estoy comprobando que estoy usando la sintaxis correcta.
Para ser claros, para la presente publicación, solo estoy preguntando acerca de la sintaxis.
Editar: Pensé que tenía muy claro que solo estaba preguntando sobre espacios en blanco en una URL ... Sí produjo el error que estaba buscando.
Encontré una instancia en la que un espacio vs %20
no produce los mismos resultados, como el último carácter en una URL.
Esto (note el espacio único después de los dos guiones):
/victim/products.php?val=100' ORDER BY 4 --
produce esto:
Error en el acceso a la base de datos: tiene un error en su sintaxis SQL; revise el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de '' 'en la línea 1.
Mientras esto:
/victim/products.php?val=100' ORDER BY 4 --%20
produce:
Error en el acceso a la base de datos: columna desconocida '4' en 'cláusula de orden'.
Interesante ...
Sé que la misma compilación de XAMPP no tiene problemas con un espacio después de 2 guiones al final de una inyección cuando está en un campo de inicio de sesión usando el método POST ...