Dominio de Vulnerabilidades Web

En este curso, aprenderás sobre las vulnerabilidades web más comunes y cómo explotarlas. Aprenderás sobre inyección SQL, inclusión de archivos, secuencias de comandos entre sitios (XSS), carga de archivos, inyección de comandos y vulnerabilidades de recorrido de directorios. También aprenderás cómo explotar estas vulnerabilidades utilizando diversas técnicas y herramientas.

CiberseguridadDesarrollo web

💡 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

Dominio de Vulnerabilidades Web es un curso guiado para principiantes que muestra cómo un tratamiento inseguro de las entradas se convierte en un fallo explotable de una aplicación web. En ocho laboratorios prácticos, ejecutarás aplicaciones PHP deliberadamente vulnerables en Docker, examinarás su comportamiento y fragmentos de código fuente y las probarás desde Firefox o el terminal.

El programa recorre varias vías de ataque distintas: inyección SQL contra consultas de bases de datos, inclusión local y remota de archivos, cross-site scripting reflejado, carga insegura de archivos, inyección de comandos del sistema operativo e inyección de código PHP. Cada ejercicio relaciona un patrón de programación vulnerable con un resultado observable, como eludir la autenticación, extraer datos, ejecutar scripts, acceder a archivos u obtener un web shell.

Lo que aprenderás

Al completar este curso, podrás:

  • Iniciar aplicaciones intencionadamente vulnerables con Docker e interactuar con ellas mediante Firefox, parámetros de URL, formularios y Hackbar
  • Detectar inyección SQL mediante errores y pruebas de verdadero o falso, distinguir contextos numéricos y de cadena y determinar el número de columnas de una consulta
  • Usar UNION SELECT e information_schema para identificar la estructura de una base MySQL, recuperar datos y eludir una consulta de inicio de sesión insegura
  • Distinguir la inclusión estática de archivos PHP de la controlada por el usuario y confirmar inclusiones locales o remotas con cargas controladas
  • Crear cargas XSS reflejadas y eludir filtros simples sensibles a mayúsculas mediante elementos y controladores de eventos alternativos
  • Examinar la validación de cargas de archivos, subir una página de prueba PHP o un shell de comandos y explorar omisiones opcionales mediante extensiones
  • Explotar entradas inseguras enviadas a comandos del sistema operativo, ejecutar comandos adicionales y establecer un shell inverso limitado al laboratorio
  • Escapar de una cadena PHP enviada a eval() para llamar a funciones, leer archivos del servidor, escribir archivos nuevos y crear un web shell sencillo

A quién va dirigido este curso

Este curso está dirigido a aspirantes a probadores de seguridad web, desarrolladores, estudiantes de CTF y principiantes en ciberseguridad que desean práctica guiada para relacionar código PHP vulnerable con cargas de prueba de concepto funcionales. Es apropiado si prefieres experimentar desde el navegador y modificar directamente las URL antes de pasar a un flujo completo con proxy de interceptación.

Requisitos previos: Se recomienda saber utilizar de forma básica un terminal Linux y estar familiarizado con URL, parámetros de consulta, formularios HTML y solicitudes web sencillas. Un conocimiento inicial de PHP y SQL facilitará las explicaciones del código fuente, aunque los laboratorios explican la sintaxis relevante cuando aparece.

Entorno de aprendizaje: Los laboratorios usan entornos Linux gráficos y aislados de LabEx con Firefox, terminal, Docker, aplicaciones web vulnerables locales y un archivo de extensión Hackbar proporcionado. Algunos ejercicios descargan imágenes públicas de Docker, y una demostración de inclusión remota solicita una carga pública de PentesterLab; el curso no exige una cuenta de terceros.

Preguntas frecuentes

¿Necesito Burp Suite u otro proxy de interceptación?

No. Los ejercicios utilizan Firefox, entrada directa en URL y formularios, herramientas de desarrollo del navegador, Hackbar y comandos de terminal. Interceptar y modificar tráfico HTTP sin procesar con Burp Suite no forma parte del curso.

¿Todas las aplicaciones vulnerables se alojan localmente?

Las aplicaciones se ejecutan localmente en contenedores Docker dentro del laboratorio. Los comandos de preparación descargan imágenes públicas de registros de contenedores y el ejercicio de inclusión remota carga una demostración alojada públicamente, por lo que esa lección no funciona de forma totalmente desconectada.

¿Cuál es aquí la diferencia entre inyección de comandos e inyección de código?

El laboratorio de inyección de comandos coloca una entrada no fiable dentro de un comando del sistema y demuestra la ejecución de comandos adicionales del sistema operativo. El de inyección de código introduce la entrada en una cadena PHP enviada a eval(), lo que permite que funciones PHP inyectadas lean o escriban archivos y creen un web shell.

¿Enseña el curso a corregir todas las vulnerabilidades?

Explica patrones inseguros e introduce controles como la validación de extensión, tipo MIME y tamaño, pero el trabajo práctico se centra principalmente en la explotación. La parametrización segura de consultas, la codificación sistemática de salidas, una arquitectura de carga para producción y las pruebas completas de remediación requieren estudio adicional.

Profesor

labby
Labby
Labby is the LabEx teacher.