SQL Injection
La inyección SQL es un ataque que explota vulnerabilidades en aplicaciones que utilizan bases de datos. Un atacante inserta código SQL malicioso en entradas como logins, formularios, URLs o parámetros de API. Esto puede otorgarles acceso no autorizado a datos o permitir manipulación de información.
Existen diferentes tipos de inyecciones SQL
Error-Based SQLi: Al insertar el payload la página muestra un mensaje de error al usuario como el siguiente

Actuamos en base al error que la página nos ha mostrado
Union-Based SQLi: Permite al atacante combinar los resultados de su consulta maliciosa con la consulta original utilizando la cláusula
UNION
Para este tipo de ataque es necesario conocer primero el número de columnas que existen y la base de datos que esta corriendo por detrás
Supongamos que el parámetro categories es vulnerable, primero de todo tenemos que saber el número de columnas que existen para ello podemos usar ORDER BY
categories=gift' ORDER BY <NUM>--
Iremos probando diferentes números, una vez conozcamos las columnas podremos obtener información de la base de datos, previamente usaremos payloads para ver el tipo de BD que es (PostgreSQL,MySQL , SQL Server)
A modo de ejemplo a la hora de aplicar el order by hemos descubierto que existen 2 columnas por lo que podremos usar los siguientes payloads
El siguiente paso es enumerar las tablas en la Base de Datos
Para postgresql podemos usar el siguiente payload
categories=gift' UNION SELECT table_name, null FROM information_schema.tables WHERE table_schema=current_schema()--
Una vez enumeradas las tablas podemos hacer las consultas
categories=gift' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users'--
Time-Based Blind SQli: Este tipo de ataque se basa en usar funciones que retrasan la respuesta de la base de datos (SLEEP en Mysql, pg_sleep en PostgreSQL)
categories=gift' AND (SELECT pg_sleep(5))--
Si la página tarda 5 segundos en responder, la condicion es verdadera por lo que es vulnerable a este tipo de inyección
Última actualización