Entrada

Mass Assignment Privilege Escalation

Mass Assignment Privilege Escalation

Mass Assignment Privilege Escalation

Mass Assignment Privilege Escalation Plataforma de recetas de cocina donde el endpoint de registro acepta el campo ‘role’ sin validacion, permitiendo registrarse como administrador y acceder al panel con datos sensibles y la flag del sistema.

mass_assing_register

Analizo que ocurre cuando nos registramos en la web. La respuesta al igual que en el reto anterior nos muestra que el rol por defecto es user. Así que deduzco que hay que hacer lo mismo y usar el replacer para suplantar en el frontend el rol del usuario registrado

mass_assing_replacer_role

Pongo en enable la regla que ya había creado para que el rol se modifique.

mass_assing_register_chefhub

Otra vez forzamos al front a validad un usuario admin.

mass_assing_admin_denied

Parece una incoherencia ser admin y no tener acceso al panel sigue apareciendo un {"error":"Admin access required"}.

mass_assing_chefhub_403_to_200

Ahora aunque tenemos ya el rol, no es suficiente para que nos muestre el panel de admin, así que creamos otra regla en replacer, que modifique la respuesta 403 a 200 y volver a engañar al frontend. Ahora modificamos 2 respuestas del frontend, el rol y la respuesta del backend hacia en frontend.

mass_assing_chefhub_adminpanel

Y ahora sí, tenemos acceso como administrador y obtenemos la flag.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.