Escalade des privilèges verticaux
Réécrivez une revendication dans votre propre jeton, devenez l'administrateur.
Qu'est-ce que Escalade des privilèges verticaux?
L'escalade horizontale se déplace latéralement vers les données d'un autre utilisateur. L'escalade verticale gravit les échelons, car la porte d'autorisation fait confiance à une valeur détenue par l'attaquant. Vous découvrirez votre rôle voyageant dans un cookie de session JWT, réécrivez la revendication de spectateur en administrateur et accédez à une console d'opérations sans mot de passe volé ni code d'exploitation. La porte décode le jeton et lit la déclaration sans vérifier la signature, et le décodage ne prouve rien. Le correctif vérifie d'abord la signature, avec des privilèges redirigés côté serveur à partir d'enregistrements approuvés comme filet de sécurité.
Ce que vous apprendrez dans Escalade des privilèges verticaux
- Distinguer l'élévation de privilèges verticale de l'élévation horizontale des privilèges selon l'endroit où l'attaquant se déplace dans la hiérarchie des rôles
- Reconnaissez que l'authentification (prouver qui vous êtes) est distincte de l'autorisation (prouver que vous pouvez le faire)
- Comprendre que tout rôle, niveau ou autorisation contenu dans un jeton ou un cookie détenu par le client est contrôlable par l'attaquant jusqu'à ce que son intégrité soit vérifiée.
- Appliquez le correctif qui vérifie la signature d'un jeton avant de faire confiance à une revendication, afin qu'un rôle contrefait soit rejeté
- Ajoutez un backstop côté serveur en redérivant les privilèges des enregistrements de confiance et en appliquant le moindre privilège
Escalade des privilèges verticaux — Étapes de la formation
-
Un siège en lecture seule
Bob détient un compte légitime mais à faible privilège sur la console d'exploitation de Talveyn, le siège d'affichage en lecture seule d'un entrepreneur. Il se connecte avec ses propres identifiants, exactement comme il en a le droit. Aucun mot de passe volé, aucun compte piraté. Il atterrit chez son spectateur. Il peut voir ses files d'attente d'assistance et une carte à laquelle il n'est pas censé toucher : la console d'administration.
-
La porte verrouillée
Bob ouvre quand même la console d'administration depuis son tableau de bord, juste pour voir jusqu'où va son siège. Le serveur le renvoie avec un avis de restriction. La porte est réelle. La question intéressante est de savoir ce que cette porte vérifie réellement.
-
Le rôle est dans le jeton
Bob ouvre l'inspecteur de cookies du navigateur. Sa session est un JWT, et la console l'a décodé en déclarations lisibles : sous quel nom il est connecté et le rôle qu'elle lui accorde. Le voilà, bien en vue : un téléspectateur de revendications de rôle. La valeur même que le portail vérifie se trouve dans un jeton que son propre navigateur détient.
-
Forgez le rôle
Si la console lit son rôle directement à partir du jeton et que le jeton se trouve dans son navigateur, alors il peut le réécrire. Bob modifie la revendication de rôle de spectateur à administrateur. L'inspecteur réencode le jeton avec la nouvelle revendication. La signature ne correspond plus à la charge utile, mais cela n'a d'importance que si le serveur prend la peine de vérifier.
-
Dans la console d'administration
Bob recharge la zone d'administration, cette fois avec le faux jeton. La porte lit l'administrateur à partir de ses réclamations et ouvre la porte. Il détient désormais l'intégralité de l'espace administrateur : l'enregistrement de chaque utilisateur, le pouvoir de modifier n'importe quel rôle, d'exporter l'intégralité du répertoire et d'accéder à la facturation et aux paiements. Un siège en lecture seule, il y a vingt secondes.
-
Nommez ce qui s'est passé
Avant que le désordre de Bob ne devienne le matin d'Alice, soyez précis sur l'escalade.
-
Un spectateur avec des mains d'administrateur
Alice est propriétaire des contrôles d'accès de la console. Du jour au lendemain, la surveillance a signalé quelque chose qui devrait être impossible : une session de spectateur effectuant des actions réservées à l'administrateur. Les opérations de sécurité lui ont envoyé les résultats par courrier électronique.
-
Ouvrez le portail d'administration
Chaque route d'administration partage une porte, require-admin.js . Alice l'ouvre pour voir exactement comment elle décide qui compte comme administrateur.
-
La porte fait confiance au jeton
La porte extrait le rôle de l'appelant du jeton de session et le compare à celui d'administrateur. Ce qu'il ne fait jamais, c'est vérifier que le jeton est authentique. Une charge utile réécrite dans le navigateur se décode très bien, donc un rôle forgé passe directement.
-
Choisissez la vraie solution
Vous avez vu le bug. Choisissez le changement qui le ferme réellement.
Couverture des référentiels de sécurité
OWASP Top 10
- A01:2025 Broken Access Control
- A01:2021 Broken Access Control
CWE
- CWE-269 Improper Privilege Management
- CWE-345 Insufficient Verification of Data Authenticity
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security