CTF HACKS

Aprende SQL Injection | Hacking Web

La vulnerabilidad SQL Injection es de las más conocidas en el mundo de la ciberseguridad.
¿Pero sabes porque motivo estas inyecciones funcionan y nos permiten extraer información de la base de datos?

Vamos a comenzar por el principio, estoy seguro que has visto esta inyección alguna vez: ‘ or 1=1– –
Y quieres saber porque esto nos permite saltarnos un panel de Login y poder acceder como Administrador.

Las páginas web suelen utilizar consultas SQL para comunicarse con la Base de Datos, de esta forma comprobará si el usuario y contraseña son correctos.

Tabla Users

Supongamos que la tabla de usuarios es la siguiente:

Consulta SQL users

Consulta Correcta

La página web para comprobar el usuario y contraseña que introducimos realiza la siguiente consulta:

  • username: admin
  • password: admin123

En este caso la consulta es correcta porque coinciden el USERNAME y PASSWORD, la Base de Datos devolverá la fila del usuario y nos dejará acceder al panel de ADMIN.

Consulta SQL username y password - inyección SQL

Consulta Incorrecta

Ahora vamos a introducir el mismo usuario pero una contraseña incorrecta, para que veáis la respuesta que nos dará la consulta SQL.

  • username: admin
  • password: 1234

Al introducir uno de los dos datos de forma incorrecta la Base de Datos NO devolverá información ya que se deben cumplir las dos condiciones porque tenemos el operador AND en la consulta SQL.

Aprender SQL Injection

Inyección SQL

Este es el momento importante de este post, la SQL Injection, vamos a introducir en el campo de username el payload típico: ‘ or 1=1– – y en el campo de password una contraseña incorrecta.

  • username: ‘ or 1=1– –
  • password: 1234

Lo que estamos haciendo en esta consulta SQL es introducir una nueva condición, si el USERNAME es igual a nada O 1 es igual a 1 como esta segunda condición SIEMPRE se va a cumplir la condición del USERNAME se va a cumplir.

¿Pero ahora faltaría comprobar si la PASSWORD es correcta?

Pues no!! Ahora la contraseña no se comprueba, da igual lo que pongas en este campo y todo gracias a: — – estos guiones lo que hacen es comentar el resto de la consulta SQL y evitan que se ejecute la comprobación de la contraseña.

Introducción SQL Injection

Introducción SQL Injection – YouTube

Si todavía tienes dudas o quieres aprender más debes visitar este vídeo de YouTube.

Deja un comentario

Scroll al inicio