dudas sobre inyeccion remota de comando en URL (como mitigar)

Iniciado por rocheka, 18 Mayo 2020, 03:12 AM

0 Miembros y 1 Visitante están viendo este tema.

rocheka

buenas, tengo dudas sobre la inyección remota de código, esto va relacionado a un trabajo de estudio donde me piden:

- Encontrar vulnerabilidades de un Sitio Web del tipo Inyección remota de comandos.

-Aparte de lo que sugiere OWASP ZAP, realice 2 recomendaciones adicionales para mitigar los problemas detectados.

Según lo consultado al docente, dice que es inyectar comandos de sistema operativo linux en la URL de una pagina web, pero mi duda es conocen maneras de mitigar esa vulnerabilidad. Y si pudiesen aclararme un poco del tema, se agradecería.

EdePC

Saludos,

- De primera no debería de haber ese tipo de posibilidades, pero si se requiere la ejecución de código dinámico pues hay que hacer una lista blanca, primero asignar un usuario con los permisos adecuados hacia los comandos que debe ejecutar, luego filtrar la entrada del comando tal cual se espera.

rocheka

#2
muchisimas gracias amigo, se agradece totalmente. ;) si pudiera compartir un enlace que tenga o si conoce alguna pagina para buscar sobre esta vulnerabilidad especifica, que me llevo 2 dias tratando de entender la "materia" y las posibles soluciones para mitigar

MinusFour

¿Te están pidiendo que busques RCE en sitios existentes o como es que se pudiera llegar acabo un RCE?

El ejemplo más común de RCE debe ser sin duda subir archivos .php a servidores web. Por ejemplo si tenias un servidor web para subir imagenes. Era algo super común hace unos 10 años, hoy en día...



Opciones para mitigar en general otorgar el minimo de privilegios al proceso que pudiera ser vulnerado y aislar completamente el proceso de los demás (por ejemplo correr el proceso dentro de un contenedor). Aunque la practica común es estar en eterna vigilancia por vectores de ataque.

Shellshock es otro RCE de los más graves en mi opinión (hace como unos 4 años) pero ese podía aplicar a muchos otros servicios (solo que los servidores web fueron los más atacados).

rocheka

Lo que pide textual es:

DESARROLLO DE CASO (70 Ptos.)
1. Mediante el uso de NMAP, señale cuáles son los servicios, protocolos y puertos que tenga abierto el
servidor y la respectiva versión de los mismos. (20 ptos.). 2. Encontrar vulnerabilidades de un Sitio Web (imagen ISO de Servidor entregado por el profesor), del
tipo Inyección remota de comandos. Evidencie mediante una screenshot del trabajo realizado (20
ptos.)
3. Aparte de lo que sugiere OWASP ZAP, realice 2 recomendaciones adicionales para mitigar los
problemas detectados (30 ptos.)

La primera parte ya la tengo, pero nos compartió una iso de web_for_pentester.iso  y nos dijo que esa pagina web (que viene con vulnerabilidades) agregaramos la inyeccion remota de comandos, no con sql, ni php, solo por comandos de linux a la URL.
adjunto un ejemplo:
http://176.148.15.6/commandexec/example1.php?ip=127.0.0.1%26ps%20-eafw%26

http://176.148.15.6/commandexec/example1.php?ip=127.0.0.1%26pstree%26

EdePC

- Pues ahí está, el argumento espera es una IP, solo tienes que filtrar lo esperado. Lo más sencillo sería armar un Expresión Regular que sirva como lista blanca:

Código (php-brief) [Seleccionar]
preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}$/', $_GET['ip'])


@XSStringManolo

 Es el parámetro $_GET["IP"] dentro del archivo .php el que se supone que solo acepta una ip, pero le puedes adjuntar comandos.
Modifica el código que ejecuta comandos para que deje de hacerlo. Parsear la ip es difícil porque puede que necesites IPv6 y en ese formato puedes meter comandos válidos.