05.-Pruebas de autorización
Las pruebas de autorización evalúan si un usuario tiene acceso solo a los recursos y funcionalidades que le corresponden según su nivel de privilegio. Estas pruebas buscan identificar vulnerabilidades que permitan a un usuario acceder o modificar información a la que no debería tener acceso.
Path y Directory Traversal¶
Esta vulnerabilidad ocurre cuando una aplicación permite a los usuarios interactuar con archivos del sistema sin aplicar restricciones adecuadas. Puede aprovecharse para:
- Leer archivos sensibles del servidor (configuraciones, logs, bases de datos).
- Ejecutar comandos remotos si el servidor web tiene permisos elevados.
Ejemplo de ataque Directory Traversal¶
Si un sistema permite acceder a un archivo con una URL como:
https://ejemplo.com/descargar.php?file=report.pdf
Un atacante podría modificar el parámetro file
para acceder a archivos internos:
https://ejemplo.com/descargar.php?file=../../etc/passwd
Si la aplicación no valida la entrada del usuario, podría exponer archivos del sistema.
Evasión del Sistema de Autorización¶
Se busca determinar si un usuario puede acceder a recursos o funcionalidades restringidas sin contar con los permisos adecuados.
Casos a revisar:
- Acceso sin autenticación a páginas protegidas.
- Uso de cuentas de menor privilegio para intentar acceder a funciones administrativas.
Ejemplo¶
Si un usuario no autenticado puede acceder a:
https://ejemplo.com/admin/dashboard
sin ser redirigido a un login, la aplicación presenta fallos en los controles de autorización.
Pruebas de Elevación de Privilegios¶
Se intenta incrementar los privilegios de un usuario para acceder a funcionalidades restringidas.
Técnicas utilizadas¶
- Manipulación del grupo de usuario
- Algunas aplicaciones almacenan el rol del usuario en un parámetro modificable (por ejemplo, en la URL o en cookies).
- Un atacante podría cambiar
"role=user"
por"role=admin"
para ganar privilegios. - Manipulación de la dirección IP de origen
- Algunas aplicaciones otorgan permisos según la IP de acceso (por ejemplo, accesos administrativos desde una red interna).
- Si la aplicación confía en la cabecera
X-Forwarded-For
, un atacante podría falsificarla para simular acceso desde una IP privilegiada.
Referencias Inseguras a Objetos de Manera Directa (IDOR)¶
Este tipo de vulnerabilidad ocurre cuando un usuario puede modificar un identificador en la URL o en una petición HTTP para acceder a datos de otro usuario.
Ejemplo de ataque IDOR¶
Si un usuario accede a su perfil con:
https://ejemplo.com/perfil?id=1001
Un atacante podría cambiar el ID para acceder a otra cuenta:
https://ejemplo.com/perfil?id=1002
Si la aplicación no valida adecuadamente los permisos, el atacante accederá a información de otro usuario.
Autoevaluación¶
Pregunta: Si estoy intentando evadir un login en un aplicativo web mediante técnicas de inyección SQL, ¿qué tipo de pruebas estoy realizando?
✅ Pruebas de autenticación (Correcto) ❌ Pruebas de configuración y despliegue ❌ Pruebas de gestión de identidad ❌ Pruebas de autorización
Explicación: Las pruebas de autenticación evalúan si el proceso de inicio de sesión es seguro. La inyección SQL en formularios de login es una técnica para burlar la autenticación y acceder sin credenciales válidas.
Conclusión¶
Las pruebas de autorización son cruciales para evitar accesos indebidos a recursos y funciones sensibles. Implementar controles estrictos y validar correctamente los permisos de cada usuario ayuda a prevenir fugas de información y escaladas de privilegios no autorizadas.