Laboratorio: El control de acceso basado en métodos se puede eludir
Last updated
Last updated
Los métodos HTTP adicionales que se pueden utilizar en una solicitud además de GET y POST son:
HEAD: Solicita solo los encabezados de la respuesta, sin el cuerpo del mensaje.
PUT: Crea o actualiza un recurso en el servidor.
DELETE: Elimina un recurso en el servidor.
PATCH: Realiza una modificación parcial de un recurso en el servidor.
OPTIONS: Obtiene las opciones de comunicación disponibles para un recurso específico en el servidor.
Es importante tener en cuenta que no todos los servidores admiten todos los métodos HTTP, y su disponibilidad puede depender del contexto y configuración del servidor.
En este caso lo que hicimos fue:
Analizar la solicitud POST de Administrator para hacer upgrade de user NORMAL → ADMIN, en este caso con wiener eso fue lo que hicimos y esto fue lo que vimos:
Admin tenía la URL /admin-roles junto con 2 parametros de valores, el username
a hacer upgrade y la action
a efectuar, si upgrade
para actualizar a admin o downgrade
para quitar los permisos de admin
Dejamos a wiener como user normal e ingresamos como wiener para hacer la solicitud tal cual, el problema fue que intentandolo nos retornaba un 401 de Forbidden entonces lo que hicé fue cambiar el metodo POST
que tenía a GET
pero tampoco sin embargo busqué lo otros metodos HTTP y lo hicé con PUT
que es para crear o actualizar un recurso en el servidor, y efectivamente así funcionó:
Captura desde el Burp Repeater →
Y en cuanto fui a la pagina y actualicé, ya estaba wiener como admin con el LAB Solved! ✅
Resuelto exitosamente!