Cross-Site Request Forgery (CSRF)
#OWASP10 #CSRF
Last updated
#OWASP10 #CSRF
Last updated
El Cross-Site Request Forgery (CSRF) es una vulnerabilidad de seguridad en la que un atacante engaña a un usuario legÃtimo para que realice una acción no deseada en un sitio web sin su conocimiento o consentimiento. El ataque se lleva a cabo mediante enlaces maliciosos o páginas web engañosas que contienen solicitudes HTTP que ejecutan acciones no deseadas en el sitio web objetivo.
Un ejemplo de ataque CSRF serÃa cuando un usuario, después de iniciar sesión en su cuenta bancaria en lÃnea, visita una página web maliciosa que contiene un formulario para transferir fondos. Si el usuario hace clic en el botón de envÃo sin darse cuenta de que está realizando una transferencia, el ataque CSRF se considera exitoso.
Este tipo de ataque puede ser utilizado para realizar diversas acciones no deseadas, como la transferencia de fondos, la modificación de información de la cuenta o la eliminación de datos.
Para prevenir los ataques CSRF, los desarrolladores deben implementar medidas de seguridad adecuadas, como la inclusión de tokens CSRF en formularios y solicitudes HTTP. Estos tokens permiten que la aplicación web verifique la autenticidad de la solicitud y asegure que proviene de un usuario legÃtimo, protegiendo contra atacantes malintencionados. Sin embargo, se debe tener cuidado ya que también existen formas de explotar los tokens CSRF.
Usualmente sucede cuando hay cambios de variables, como ejemplo se usara el siguiente Laboratorio
http://www.seed-server.com y conectate como Alice.
Al tratar de agregar a mas personas, por hovering te das cuenta que cada usuario tiene una id.
Ve a editar perfil, prepara Burpsuite-Intercept y cambia tu nombre de usuario para ver la peticion.
Por ahora se tramita por POST, pero que pasa si se cambia a GET?
Elimina las posibles variables innecesarias, para facilitar su trabajo y no tener que predecir parametros extraños.
Al revisar tu perfil, puedes notar que si se cambio la informacion por GET, significa que hay una gran probabilidad de que puedas hacer eso para cada usuario.
Al cambiar la ID a 59 (admin), y ejecutar el comando, no cambias su nombre, cada usuario tiene un token verificador.
Si interceptamos la peticion que se usa para agregar a alguien, esta esta la siguiente
Si remueves los campos marcados, funcionara?
Spoiler: Si, se agrega, los otros parametros son innecesarios, y puedes enviar mensajes para forzar que te agreguen.
Para probar, envia un mensaje a Samy para que agregue al usuario 57 (Bobby)