¿OS Command Injection?
¿Qué es la Inyección de Comandos del Sistema Operativo?
La inyección de comandos del sistema operativo (OS Command Injection) en aplicaciones web es una vulnerabilidad que permite a un atacante ejecutar comandos arbitrarios en el sistema operativo del servidor que aloja la aplicación vulnerable. Esto sucede cuando la aplicación pasa entradas del usuario sin la debida validación y sanitización directamente a un shell del sistema operativo. La inyección de comandos puede resultar en la toma de control del servidor, la exfiltración de datos sensibles y la interrupción de servicios.
¿Cómo Funciona la Inyección de Comandos?
La inyección de comandos se aprovecha cuando una aplicación web utiliza entradas del usuario como parte de un comando del sistema operativo sin realizar una validación y sanitización adecuadas. Los atacantes pueden insertar comandos adicionales utilizando caracteres especiales que el sistema operativo reconoce para encadenar comandos.
Ejemplo de Código Vulnerable en PHP
Considere el siguiente script PHP, que toma una entrada del usuario y la pasa a un comando del sistema operativo:
En este código, la entrada del usuario (ip
) se concatena directamente con el comando ping
sin ninguna validación. Un atacante puede explotar esta vulnerabilidad inyectando comandos adicionales.
Ejemplo de Explotación
Si un atacante proporciona el siguiente input:
El comando resultante que se ejecutará será:
El sistema operativo ejecutará ambos comandos: el ping y el ls
, lo que permitirá al atacante ver la lista de archivos en el directorio actual.
Usando curl
, la solicitud se vería así:
Impacto de la Inyección de Comandos
El impacto de la inyección de comandos puede ser extremadamente severo, permitiendo al atacante:
Ejecutar comandos arbitrarios: Cualquier comando que el servidor pueda ejecutar puede ser ejecutado por el atacante.
Escalar privilegios: El atacante puede intentar elevar sus privilegios en el sistema.
Acceder a datos confidenciales: Leer, modificar o eliminar archivos en el sistema.
Interrumpir servicios: Apagar servicios, eliminar archivos críticos, etc.
Última actualización
¿Te fue útil?