Experimente el impacto de la vulnerabilidad Path Traversal, culpable de los recientes problemas de Apache
Experimente el impacto de la vulnerabilidad Path Traversal, culpable de los recientes problemas de Apache
A principios de octubre, Apache lanzó la versión 2.4.49 para corregir una vulnerabilidad de Path Traversal y Ejecución Remota de Código y posteriormente la 2.4.50 para solucionar el hecho de que la corrección de la 2.4.49 estaba incompleta. Quizás hayas visto en las redes sociales la importancia de actualizar a la última versión para evitar estos riesgos, dado que Apache alimenta el 25% de Internet según algunas estimaciones. Pero, ¿cuál es el problema? ¿Qué riesgo existe en este caso?
¿Por qué no lo pruebas tú mismo?
Hemos creado una misión para demostrar los riesgos en un entorno real y la hemos hecho pública para que todos puedan probarla. En esta misión, le mostraremos cómo la vulnerabilidad Path Traversal puede afectar a su infraestructura y aplicaciones. Haga clic a continuación para entrar directamente, o continúe leyendo para aprender más sobre la vulnerabilidad en detalle.
Acerca de la vulnerabilidad Path Traversal
La vulnerabilidad se introdujo en la versión 2.4.49(debido a un cambio en la función de normalización de URL), donde se introdujo una nueva función de normalización de rutas. Desgraciadamente, no normalizó correctamente las rutas codificadas en la URL. Esto hace que sea posible realizar un ataque de path traversal si la siguiente configuración no está presente:
Y si mod_cgi está habilitado, también puede ser aprovechado en una vulnerabilidad de Ejecución Remota de Código. Pero primero vamos a profundizar en la codificación de la URL para entender mejor lo que salió mal.
Codificación de la URL
En su forma más básica, la vulnerabilidad se produce debido a la falta de consideración de las URL con codificación de URL. La función de normalización de rutas introducida recientemente no manejaba completamente los casos en los que los puntos estaban codificados como URL.
Recuerde que para llevar a cabo un ataque de travesía de ruta, necesitará atravesar con la secuencia ../. La función de normalización, sin embargo, es lo suficientemente inteligente como para eliminar eso. Entonces, ¿qué se puede hacer? Puede codificar la URL con un .(punto) hasta %2e, y utilizar una secuencia como .%2e/. Eso funcionaría en muchos casos contra Apache 2.4.40. Pero también puede ir un paso más allá y codificarla doblemente. La versión codificada de la URL de . %2e/ es .%252e/. Esto puede evitar el intento de normalización por parte de Apache.
Pero hay una trampa
Si alguien quisiera intentar explotar esta vulnerabilidad directamente en su navegador, no tendría éxito. Esto se debe a que los navegadores también intentan normalizar las URL que se envían a los servidores. Esto significa que incluso nuestra secuencia doblemente codificada será eliminada. También significa que no podemos usar simplemente un navegador para demostrar esto.
Puede utilizar cURL para demostrarlo utilizando la bandera --path-as-is , que impide que normalice la URL antes de enviarla:
Prevención y mitigación
Para evitar completamente el problema, es importante mantenerse al día con los últimos parches de Apache. Específicamente, usted querrá actualizar a 2.4.51 como mínimo. Pero es una buena práctica para actualizar en un horario regular para mantenerse al día.
Para mitigar este problema si está ejecutando la versión 2.4.49, asegúrese de haber incluido lo siguiente en su configuración de Apache:
Y para evitar la ejecución remota de código, desactive mod_cgi si no lo utiliza.
Experimente usted mismo el impacto
¿Está interesado en explorar exactamente lo que ocurrió y probarlo usted mismo?
Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.
Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.
Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores
Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.
Experimente el impacto de la vulnerabilidad Path Traversal, culpable de los recientes problemas de Apache
A principios de octubre, Apache lanzó la versión 2.4.49 para corregir una vulnerabilidad de Path Traversal y Ejecución Remota de Código y posteriormente la 2.4.50 para solucionar el hecho de que la corrección de la 2.4.49 estaba incompleta. Quizás hayas visto en las redes sociales la importancia de actualizar a la última versión para evitar estos riesgos, dado que Apache alimenta el 25% de Internet según algunas estimaciones. Pero, ¿cuál es el problema? ¿Qué riesgo existe en este caso?
¿Por qué no lo pruebas tú mismo?
Hemos creado una misión para demostrar los riesgos en un entorno real y la hemos hecho pública para que todos puedan probarla. En esta misión, le mostraremos cómo la vulnerabilidad Path Traversal puede afectar a su infraestructura y aplicaciones. Haga clic a continuación para entrar directamente, o continúe leyendo para aprender más sobre la vulnerabilidad en detalle.
Acerca de la vulnerabilidad Path Traversal
La vulnerabilidad se introdujo en la versión 2.4.49(debido a un cambio en la función de normalización de URL), donde se introdujo una nueva función de normalización de rutas. Desgraciadamente, no normalizó correctamente las rutas codificadas en la URL. Esto hace que sea posible realizar un ataque de path traversal si la siguiente configuración no está presente:
Y si mod_cgi está habilitado, también puede ser aprovechado en una vulnerabilidad de Ejecución Remota de Código. Pero primero vamos a profundizar en la codificación de la URL para entender mejor lo que salió mal.
Codificación de la URL
En su forma más básica, la vulnerabilidad se produce debido a la falta de consideración de las URL con codificación de URL. La función de normalización de rutas introducida recientemente no manejaba completamente los casos en los que los puntos estaban codificados como URL.
Recuerde que para llevar a cabo un ataque de travesía de ruta, necesitará atravesar con la secuencia ../. La función de normalización, sin embargo, es lo suficientemente inteligente como para eliminar eso. Entonces, ¿qué se puede hacer? Puede codificar la URL con un .(punto) hasta %2e, y utilizar una secuencia como .%2e/. Eso funcionaría en muchos casos contra Apache 2.4.40. Pero también puede ir un paso más allá y codificarla doblemente. La versión codificada de la URL de . %2e/ es .%252e/. Esto puede evitar el intento de normalización por parte de Apache.
Pero hay una trampa
Si alguien quisiera intentar explotar esta vulnerabilidad directamente en su navegador, no tendría éxito. Esto se debe a que los navegadores también intentan normalizar las URL que se envían a los servidores. Esto significa que incluso nuestra secuencia doblemente codificada será eliminada. También significa que no podemos usar simplemente un navegador para demostrar esto.
Puede utilizar cURL para demostrarlo utilizando la bandera --path-as-is , que impide que normalice la URL antes de enviarla:
Prevención y mitigación
Para evitar completamente el problema, es importante mantenerse al día con los últimos parches de Apache. Específicamente, usted querrá actualizar a 2.4.51 como mínimo. Pero es una buena práctica para actualizar en un horario regular para mantenerse al día.
Para mitigar este problema si está ejecutando la versión 2.4.49, asegúrese de haber incluido lo siguiente en su configuración de Apache:
Y para evitar la ejecución remota de código, desactive mod_cgi si no lo utiliza.
Experimente usted mismo el impacto
¿Está interesado en explorar exactamente lo que ocurrió y probarlo usted mismo?