Si pensabas que ibas a leer artículos en inglés, puedes cerrar esta pestaña y continuar navegando xD.
SSRF o falsificación de solicitudes del lado del servidor (por sus siglas en inglés), es un tipo de vulnerabilidad de aplicaciones web, en el que se obliga a un servidor a ejecutar peticiones sobre recursos a los que tiene acceso dicho servidor.
Eso así, como resumen.
Esta vulnerabilidad está dentro del TOP 10 de OWASP, y las consecuencias a las que se puede enfrentar la empresa pueden llegar a ser críticas, y si no, que les pregunten a los de Capital One qué les pasó en julio de 2019 xD.
Imagen "cedida amablemente" por la gente de portswigger
Vale, entremos en detalles.
Algunas de las acciones a las que puede llevar un SSRF son:
- Explotación de directorios privados del servidor (en el ejemplo más abajo)
- RCE (ejecución remota de código)
- Acceso a máquinas "behind the firewall" (ese Javi! xD)
Además de lo comentado anteriormente, no solo tiene porque afectar a la parte web. Se podrían llegar a falsisficar las peticiones en protocolos como SMB, FTP o SMTP.
Principalmente existen dos tipos de SSRF:
El "básico" y el "blind" (si, como los SQLi).
El primero (básico) ocurre cuando un atacante solicita una URL manipulada y el servidor le responde.
Imagina una tienda online en la que el usuario puede ver el total de chismáticos que tienen disponibles. El servidor obtiene los datos de una API usando para ello el ID de un artículo concreto.
El servidor pide el total de artículos que les queda en stock de una URL específica y se la devuelve al atacante. Este puede forzar al servidor modificando la URL a que le devuelva una dirección interna:
Esto nos devuelve los usuarios
El segundo (blind) ocurre cuando un atacante da una URL a la aplicación, pero la respuesta no aparece reflejada en la web (parecido a lo que ocurre con los SQLi blind).
Para poder comprobar un SSRF de tipo blind, debemos utilizar el collaborator de Burp o un DNSBin
En este caso, suelen ser más difíciles de explotar, ya que no se podrían ver los datos en el frontal web (una vez más, como ocurre con los SQLi blind).
Eso si, en estos casos puede llegar a un RCE.
Bien, en el lab de la gente de Burp, también podemos realizar el SSRF de tipo blind.
En este caso, al entrar en el lab, lo primero que debemos hacer es abrir el burp collaborator y darle al botón de copy to clipboard, para que nos copie el payload.
Lo siguiente es entrar dentro de un artículo, capturar la petición y cambiar el campo referer por el payload que nos ha copiado antes.
Una vez realizado, volvemos al collaborator y (si no aparece nada damos a poll now) podemos ver las interacciones que ha tenido, en este caso DNS.
La forma de ver si ha funcionado (en el caso del lab) es ver que en la web del lab aparece ahora como resuelto.
No sé si esto le servirá a alguien más, pero a mí me ha ayudado a comprenderlo y saber como funciona, tanto el SSRF como la parte de burp collaborator.
0 comentarios:
Publicar un comentario