Coders Conquer Security: Serie Share & Learn - Inclusión de archivos locales y recorrido de rutas

A diferencia de muchas otras vulnerabilidades, explotar los procesos de inclusión de archivos locales y el recorrido de rutas con fines malintencionados requiere un atacante con suficiente destreza, una buena cantidad de tiempo y, quizás, un poco de suerte. Esto no significa que se pueda ignorar esta vulnerabilidad. Los atacantes expertos pueden usarla para volver archivos internos contra una organización, mapear la estructura de directorios o incluso robar contraseñas e información de usuarios para realizar peligrosos ataques secundarios.
En este episodio, aprenderemos:
- Cómo explotan los hackers las vulnerabilidades de inclusión de archivos locales y recorrido de rutas
- Por qué permitir la inclusión de archivos locales y el recorrido de rutas sin restricciones puede ser peligroso
- Políticas y técnicas que se pueden emplear para encontrar y solucionar este problema.
¿Cómo explotan los atacantes la inclusión de archivos locales y el recorrido de rutas?
El detective Columbo, de la clásica serie de televisión, siempre decía: "Solo una cosa más" justo antes de soltar un dato valioso que resolvería el caso. En ese momento parecía irrelevante y el sospechoso casi siempre lo ignoraba, pero terminaba siendo su perdición. Las vulnerabilidades de inclusión de archivos locales y recorrido de rutas son muy parecidas.
Las vulnerabilidades de inclusión de archivos locales y recorrido de rutas utilizan el mecanismo de inclusión dinámica de archivos presente en la mayoría de los marcos de trabajo de programación, como scripts de ASP, JSP y PHP. En la inclusión de archivos locales, el atacante inserta el nombre de un archivo existente en el servidor local en un área de la aplicación web, como un encabezado o un campo de formulario. La aplicación procesa la entrada principal con normalidad, pero también ejecuta el comando include(page) o similar. En el recorrido de rutas, el atacante define la ruta hacia un archivo sospechoso, normalmente usando los caracteres de punto, punto y barra (../) como variables. Es muy parecido a Columbo: al hacker no le importa la primera parte del argumento; es simplemente un medio para añadir "solo una cosa más" al final.
En cualquier caso, el atacante normalmente debe realizar una cantidad considerable de pruebas y errores. A menos que conozca muy bien la estructura del sitio, adivinar las configuraciones de rutas y los nombres de archivos puede llevar mucho tiempo. Dicho esto, la mayoría de los sitios siguen patrones específicos y tienen directorios y nombres de archivos más o menos similares, por lo que podría no llevar tanto tiempo como se piensa. Y dado que la recompensa es potencialmente muy lucrativa, hay un gran incentivo para que los hackers intenten explotar estas vulnerabilidades una vez detectadas.
¿Por qué son peligrosas las vulnerabilidades de inclusión de archivos locales y recorrido de rutas?
Estas vulnerabilidades son peligrosas porque pueden permitir a los atacantes acceder a archivos confidenciales o críticos. En el caso de archivos de datos, el peligro es que el hacker obtenga información valiosa, como contraseñas de usuarios u otros datos personales. Un objetivo principal suelen ser los archivos de configuración de usuarios o contraseñas, ya que proporcionan acceso al resto del sitio. Las bases de datos también son objetivos clave; en el peor de los casos, estas vulnerabilidades podrían permitir a un atacante robar el contenido completo de una base de datos.
En cuanto a los archivos ejecutables, el peligro es que el acceso a ellos podría permitir al atacante realizar actividades maliciosas, como destruir parte de un sitio o incluso montar algún tipo de ataque de denegación de servicio interno al agotar los recursos del sistema. Pero el alcance total del peligro solo está limitado por el ingenio y la habilidad del atacante, así como por los archivos a los que pueda acceder en el servidor objetivo.
Eliminación de la amenaza que suponen la inclusión de archivos locales y el recorrido de rutas
El peligro que plantean estas vulnerabilidades puede eliminarse con buenas prácticas de ciberseguridad. Lo más importante es no permitir nunca la entrada del usuario en comandos de "inclusión de archivos" o funciones similares. Si una aplicación debe permitirlo, no pase la entrada directamente. En su lugar, utilice un mapa de referencia indirecto. Este mapa toma la entrada del usuario y la asigna a un conjunto de valores de confianza codificados, que luego pueden utilizarse de forma segura.
Como ocurre con muchas otras vulnerabilidades, preste especial atención a todas las áreas de entrada controladas por el usuario, como cookies, encabezados HTTP y parámetros de formulario. La entrada permitida debe estar en una lista blanca, denegando explícitamente todo lo demás. Cuando esto no sea posible, utilice la validación de entrada para regular estrictamente qué valores se permiten, como números, valores alfanuméricos, etc.
Más información sobre la inclusión de archivos locales y el recorrido de rutas
Para seguir leyendo, puede consultar la guía de pruebas de OWASP sobre exploits de inclusión de archivos locales y recorrido de rutas. También puede poner a prueba sus nuevos conocimientos defensivos con la demo gratuita de la plataforma Secure Code Warrior, que entrena a equipos de ciberseguridad para convertirse en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad y otras amenazas, visite el blog de Secure Code Warrior.
Controle el desarrollo impulsado por IA antes de su lanzamiento
Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).
Explorar más blogs
Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

Una cultura de seguridad: cómo Sage creó su programa de defensores
Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores
La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro
IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial
Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Habilitador 8: Branding de su programa
Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.
.avif)
Cada empleado está ahora en la primera línea de la ciberseguridad de la IA
El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.
Proteja el desarrollo basado en IA antes de su lanzamiento
Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.