Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CTF_WRITEUPS-TryHackMe-CVE-2021-41773- — CTF_WRITEUPS/TryHackMe /CVE-2021-41773/ | Kitploit
Herramientas/GitHubGitHub/hackedrishi/ctf_writeups-tryhackme-cve-2021-41773-
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebCTFAprendizaje y EducaciónLabs y Práctica
GitHubhackedrishi/ctf_writeups-tryhackme-cve-2021-41773-

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

Ver Repositorio
18hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

CVE-2021-41773/42013

Una pequeña explicación de un error de path traversal en Apache y una corrección incompleta

Tarea 1: Un poco de antecedentes...

Una breve historia

El 5 de octubre de 2021, se publicó un CVE que detallaba un ataque de path traversal en Apache HTTP Server v2.4.49. Asignado con el número CVE-2021-41773, se publicó con la siguiente descripción:

Se encontró una falla en un cambio realizado en la normalización de rutas en Apache HTTP Server 2.4.49. Un atacante podría usar un ataque de path traversal para asignar URLs a archivos fuera del directorio raíz de documentos esperado. Si los archivos fuera del directorio raíz de documentos no están protegidos por "require all denied", estas solicitudes pueden tener éxito. Además (sic), esta falla podría filtrar el código fuente de archivos interpretados como scripts CGI. Se sabe que este problema se explota en la naturaleza. Este problema solo afecta a Apache 2.4.49 y no a versiones anteriores.

Analicemos esto y veamos qué significa realmente para nosotros:

  • Del primer fragmento, vemos que un cambio reciente expuso la falla. La normalización de rutas significa que transformamos una ruta dada a alguna forma canónica que el software pueda entender y, por lo tanto, asignar al sistema de archivos real. Esto ya nos lleva a sospechar un ataque de path traversal que potencialmente puede leer archivos no deseados.
  • La siguiente parte confirma nuestras sospechas, y podemos usar un ataque de path traversal para leer recursos fuera del ámbito previsto.
  • Vemos que se requiere una configuración muy particular. Los archivos fuera del directorio raíz de documentos deben tener permisos explícitamente otorgados. Esta no es la configuración predeterminada y, por lo tanto, debería hacer que este exploit sea inútil contra un gran porcentaje de los hosts Apache (afortunadamente).
  • La siguiente parte habla sobre scripts CGI, lo que erróneamente nos lleva a creer que CGI puede necesitar estar habilitado para que este ataque funcione o que la ruta involucra CGI de alguna manera.
  • Incluso si nuestra configuración no se ve directamente afectada por este error, aún así querrá actualizar las versiones vulnerables lo antes posible.

Muchas correcciones después...

Entonces Apache corrigió este error y lanzó la v2.4.50. Fin de la historia, ¿verdad? Bueno, no exactamente. Solo 2 días después, el 7 de octubre, se publicó un nuevo CVE citando el anterior. Este menciona que la corrección del ataque de path traversal anterior era incompleta, y aún podíamos atravesar si la ruta en cuestión usaba una directiva alias para asignar sus URLs al sistema de archivos. El CVE fue asignado con el número CVE-2021-42013, con la siguiente descripción:

Se descubrió que la corrección para CVE-2021-41773 en Apache HTTP Server 2.4.50 era insuficiente. Un atacante podría usar un ataque de path traversal para asignar URLs a archivos fuera de los directorios configurados mediante directivas de tipo Alias. Si los archivos fuera de estos directorios no están protegidos por la configuración predeterminada habitual "require all denied", estas solicitudes pueden tener éxito. Si los scripts CGI también están habilitados para estas rutas alias (sic), esto podría permitir la ejecución remota de código. Este problema solo afecta a Apache 2.4.49 y Apache 2.4.50, y no a versiones anteriores.

Al igual que antes, podemos aprender algunas cosas aquí:

  • Si bien el primer exploit supuestamente estaba corregido, hay otra entrada para permitir que el traversal funcione (recuerda esto para más adelante).
  • Ahora estamos limitados a directivas de ruta alias.
  • Los directorios fuera de las rutas habituales aún requieren permisos explícitos.
  • Si CGI está habilitado, entonces podemos obtener RCE además de la simple divulgación 😲

Mientras procesamos esta locura, veremos la configuración requerida en la siguiente tarea.

Responde las preguntas a continuación

  1. ¿Qué versión de Apache httpd era inicialmente vulnerable a este CVE?
  • 2.4.49
  1. ¿Esta vulnerabilidad requiere una mala configuración inusual para ser explotable (Sí/No)?
  • Sí

Tarea 2 ¿Qué es Path Traversal de todas formas?

Un poco de teoría

Un exploit de Path Traversal es un ataque que tiene como objetivo acceder a recursos que normalmente son inaccesibles abusando de fallos en la resolución y/o normalización de rutas. Generalmente explotamos este tipo de ataque viajando (también conocido como atravesando) hacia atrás más allá de la raíz supuesta usando la sintaxis ...

¿Normalización? ¿Qué?

Normalmente, cuando se proporciona una ruta para que algún código encuentre un archivo, es necesaria una ruta absoluta. Llamemos a esto la ruta canónica. Cuando se da una ruta relativa, debe normalizarse a una forma canónica para que las bibliotecas del sistema operativo que usan esa ruta puedan encontrar el recurso en cuestión. Esta es una simplificación excesiva, por supuesto, pero la esencia permanece.

En general, existen bibliotecas de plataforma que hacen esta normalización por nosotros, pero en C/C++ normalmente lo hacemos todo nosotros mismos. Si bien esto puede ofrecer cierta flexibilidad, también puede introducir fácilmente fallos si nuestra implementación no es perfecta.

Normalizando URLs

Un servidor HTTP tiene que traducir una URL a una ruta canónica en el sistema de archivos para encontrar el archivo correcto que servir. Si bien definitivamente hay algunos filtros para evitar poder atravesar más allá del directorio raíz de documentos, algunos casos de uso pueden pasarse por alto fácilmente. En este caso, el exploit aprovecha no solo la codificación de URL (llegaremos a eso en un momento), sino también una falla en la normalización de rutas del módulo Alias (supuestamente)

Un aparte sobre la codificación de URL

Definida en RFC 3986 Sección 2, la codificación de URL es un esquema utilizado para codificar caracteres especiales o reservados dentro de una URL. Por ejemplo, los espacios en una URL se codifican como un carácter + (notablemente en los parámetros de consulta). Si queremos codificar un signo más real, debemos codificarlo usando lo que se conoce como "codificación por porcentaje". Esto simplemente implica prefijar el código hexadecimal US-ASCII del carácter con un signo %. En nuestro ejemplo, el símbolo + se puede codificar como %2B.

Cualquier carácter se puede codificar en URL, y las URLs que están completamente codificadas en URL son funcionalmente equivalentes a la versión no codificada. Del RFC: Si dos URIs difieren solo en el caso de los dígitos hexadecimales utilizados en octetos codificados en porcentaje, son equivalentes.

¿Qué pasó con Apache?

Un cambio reciente en el módulo de normalización de rutas en el servidor Apache permitió que una URL especialmente diseñada eludiera los filtros y atravesara más allá del directorio raíz de documentos, permitiendo la lectura arbitraria de archivos en el sistema si la configuración lo permitía. Además, si el módulo CGI estaba habilitado, ¡también es posible la ejecución arbitraria de archivos!

Responde las preguntas a continuación

  1. Un exploit de path traversal (elige la mejor respuesta):

A) Incluir archivos remotos arbitrarios para ser procesados en el servidor. B) Incluir archivos locales arbitrarios para ser procesados en el servidor. C) Permitir que el servidor exponga archivos arbitrarios. D) Ninguna de las anteriores.

  • C
  1. Codifica en URL el símbolo .
  • %2E
  1. ¿En qué se decodifica este fragmento de URL: %%32%65 ?
  • %2E

Tarea 3 Vale, vale; ¡Danos el Hax!

Hackeando Apache por diversión

Descargar herramienta