21/06/2023
Ejemplo de un Inyección SQL
Un ejemplo de inyección SQL podría ser el siguiente:
Supongamos que una aplicación web tiene una sección de búsqueda de usuarios por nombre, y en su código utiliza una consulta SQL como esta:
```
SELECT * FROM usuarios WHERE nombre = 'nombre_buscado';
```
Si un atacante malicioso ingresa en la entrada de búsqueda el siguiente texto:
```
' OR '1'='1
```
La consulta SQL quedaría así:
```
SELECT * FROM usuarios WHERE nombre = '' OR '1'='1';
```
Y la base de datos devolvería todos los usuarios, ignorando la condición original de buscar por el nombre específico. De esta forma el atacante podría tener acceso no autorizado a información confidencial.
Otro ejemplo sería el de una aplicación que permita al usuario ingresar una contraseña para acceder a su cuenta, y que en su código SQL utilice una consulta como la siguiente:
```
SELECT * FROM usuarios WHERE nombre_usuario='nombre_usuario' and contraseña='contraseña_ingresada';
```
Si el atacante ingresa como contraseña el siguiente texto:
```
' OR '1'='1
```
La consulta SQL quedará así:
```
SELECT * FROM usuarios WHERE nombre_usuario='nombre_usuario' and contraseña='' OR '1'='1';
```
Y la base de datos devolverá al atacante todos los usuarios, sin necesidad de conocer una contraseña válida.