Appointment
Last updated
Last updated
Nivel de Dificultad: Muy fácil.
Tags:
Databases: Evaluación de la seguridad en la gestión de bases de datos Apache y MariaDB.
Apache: Análisis de configuraciones y vulnerabilidades en servidores Apache.
MariaDB: Revisión de la seguridad y rendimiento en instancias de MariaDB.
PHP: Auditoría de seguridad en aplicaciones PHP conectadas a bases de datos.
SQL: Pruebas de integridad y prevención de inyecciones SQL en consultas.
Reconnaissance: Escaneo y mapeo de servicios y bases de datos accesibles en la red.
SQL Injection: Identificación y explotación de vulnerabilidades de inyección SQL en aplicaciones web.
Nos descargamos nuestra VPN y nos conectamos.
Iniciamos la máquina y verificamos la conexión.
Observamos que tenemos conexión y que es una máquina Linux ya que su ttl=63.
A continuación, se realiza el comando:
para realizar un escaneo de puertos y servicios detallado en la dirección IP.
Como podemos observar durante el escaneo, el puerto 80 perteneciendo al servicio HTTP está abierto, por lo que se procederá a indagar más.
Es un formulario de Login probamos a hacer una SQL Injection para que nos deje loguear ya que metemos cualquier valor se envía pero no nos dice nada.
Para evitar la autenticación de un login mediante inyección SQL, se utilizan técnicas que manipulan la consulta SQL empleada por la aplicación para verificar las credenciales del usuario. Las inyecciones más comunes introducen condiciones que siempre resultan verdaderas, permitiendo el acceso sin necesidad de un usuario y contraseña válidos.
Aquí tienes algunos ejemplos típicos:
' OR '1'='1'--: Este string inyecta una condición siempre verdadera ('1'='1'
), lo que permite eludir el chequeo de autenticación.
' OR 'a'='a'--: Similar al anterior, asegura que la condición sea siempre verdadera.
admin'--: Si la aplicación no maneja correctamente los comentarios en SQL, este string puede truncar la consulta después de "admin", evitando la verificación de la contraseña.
Estos códigos se suelen ingresar en los campos de nombre de usuario o contraseña de un formulario de login. Si la aplicación es vulnerable y no sanitiza adecuadamente la entrada del usuario, el SQL inyectado puede engañar al sistema para que permita el acceso sin credenciales válidas.
Para más detalles y cómo defenderse de estos ataques, puedes consultar la página de HackTricks sobre SQL login bypass
Structured Query Language Structured Query Language es el significado de SQL, que se utiliza para gestionar y manipular bases de datos relacionales.
SQL injection SQL injection es una de las vulnerabilidades más comunes en aplicaciones que usan bases de datos SQL.
A03:2021-Injection La inyección de código, como SQL injection, se clasifica bajo A03:2021-Injection en el OWASP Top 10 de 2021.
Apache httpd 2.4.38 ((Debian)) Nmap indica que el servicio Apache httpd 2.4.38 (Debian) está ejecutándose en el puerto 80.
443 El puerto 443 es el puerto estándar para el protocolo HTTPS.
Directory En las aplicaciones web, una carpeta se denomina directory.
404 El código 404 es la respuesta HTTP estándar para un error de "Not Found".
dir El switch dir se usa con Gobuster para buscar directorios.
# El carácter # se usa para comentar una línea en MySQL.
Congratulations La primera palabra en la página devuelta después de un login exitoso como administrador es Congratulations.
e3d0796d002a446c0e622226f42e9672