Vulnerabilidades de Inyección

Explora fallos críticos de inyección web, incluyendo la inyección de comandos y la inyección SQL (SQLi). Aprende técnicas de explotación manual y automatiza la vulneración de bases de datos utilizando la potente herramienta sqlmap.

Cybersecurity EngineerCiberseguridadKali LinuxLinux

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Los fallos de inyección aparecen cuando una aplicación permite que datos controlados por el usuario cambien el significado de un comando de shell o una consulta de base de datos. Este curso hace visible esa ruptura de límites mediante ejercicios de inyección de comandos y SQL contra aplicaciones locales deliberadamente vulnerables.

Primero construirás payloads manualmente para observar por qué los separadores, comillas, comentarios, expresiones booleanas y UNION SELECT alteran el comportamiento. Después usarás sqlmap para automatizar la detección, enumeración del esquema, extracción de datos y un flujo de OS shell antes de resolver un reto independiente de compromiso de base de datos.

Lo que aprenderás

  • Identificar un punto de inyección de comandos y confirmar la ejecución con separadores de Linux.
  • Evadir filtros simples mediante escapes y comodines del shell y crear un archivo de prueba en el objetivo.
  • Provocar errores SQL y construir un payload booleano que evada un inicio de sesión vulnerable.
  • Determinar el número de columnas y posiciones reflejadas con ORDER BY y UNION SELECT.
  • Consultar los metadatos del esquema SQLite y extraer usuarios y contraseñas preparados mediante la respuesta web.
  • Usar sqlmap para detectar SQLi, enumerar bases, volcar una tabla y probar un OS shell interactivo.
  • Validar de forma independiente dos entradas SQLi y exportar una tabla de clientes preparada en el reto final.

A quién va dirigido este curso

Este curso intermedio está dirigido a estudiantes de seguridad web que desean comprender la mecánica de la inyección antes de depender de la automatización. Resulta útil para futuros pentesters, estudiantes de seguridad de aplicaciones y desarrolladores que necesitan ejemplos concretos de cómo la construcción insegura de comandos y el SQL dinámico exponen sistemas y datos.

Requisitos previos: Manejo de terminal Linux y curl, solicitudes HTTP GET/POST y codificación URL básicas, y conceptos SQL iniciales como SELECT, WHERE, columnas y tablas.

Entorno de aprendizaje: Una terminal Ubuntu 22.04 con sqlmap y aplicaciones web locales, aisladas y deliberadamente vulnerables en los puertos 5000, 8080 y 80. Todos los comandos y datos de muestra extraídos permanecen en el entorno del curso.

Preguntas frecuentes

¿Necesito SQL avanzado antes de empezar?

No. Los laboratorios explican el contexto de consulta, la lógica booleana, los comentarios, el recuento de columnas y la secuencia de UNION SELECT. Conocer vocabulario SQL básico facilitará los ejercicios intermedios.

¿Los payloads se envían a sistemas reales?

No. Cada objetivo es una aplicación local configurada intencionadamente para practicar. Los comandos, credenciales, registros de clientes y tokens son datos preparados del laboratorio.

¿Por qué se enseña SQLi manual antes de sqlmap?

Los ejercicios manuales muestran cómo la entrada modifica la sintaxis y cómo las columnas reflejadas exponen datos. Así podrás interpretar las técnicas de sqlmap y limitar la enumeración automática en vez de tratar su salida como una caja negra.

¿Se obtiene ejecución de comandos del sistema operativo?

Sí, dentro de los laboratorios aislados. El ejercicio de inyección ejecuta comandos Linux seleccionados y el laboratorio de sqlmap guía el flujo --os-shell contra un objetivo PHP preparado. Nada se extiende fuera del entorno local.

Profesor

labby
Labby
Labby is the LabEx teacher.