cyber:vulnerabilite:javascript_authentification
Différences
Ci-dessous, les différences entre deux révisions de la page.
| cyber:vulnerabilite:javascript_authentification [2025/07/29 14:12] – créée admin | cyber:vulnerabilite:javascript_authentification [2025/07/29 14:17] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== JavaScript - Authentification ====== | ====== JavaScript - Authentification ====== | ||
| + | ===== Description ===== | ||
| + | **L' | ||
| + | |||
| + | ===== Pré-requis d' | ||
| + | |||
| + | Pour exploiter cette famille de vulnérabilité, | ||
| + | |||
| + | ==== Connaissances nécessaires ==== | ||
| + | * Connaissances de base du langage JavaScript ; | ||
| + | * Connaissances en matière de sécurité liée à l' | ||
| + | |||
| + | ==== Outils nécessaires ==== | ||
| + | * Avoir accès à une console de navigateur (Firefox, Chrome). | ||
| + | |||
| + | ===== Flux d' | ||
| + | ==== Explorer ==== | ||
| + | |||
| + | Naviguer sur l’application afin d’identifier le/les script(s) d' | ||
| + | |||
| + | ==== Expérimenter ==== | ||
| + | |||
| + | Tester les champs de formulaire d' | ||
| + | |||
| + | ==== Exploiter ==== | ||
| + | |||
| + | ===== Conséquences potentielles ===== | ||
| + | |||
| + | Une exploitation réussie de ce type de vulnérabilité peut permettre : | ||
| + | * L' | ||
| + | * L' | ||
| + | |||
| + | ===== Contre-mesures ===== | ||
| + | |||
| + | Les contre-mesures suivantes peuvent être mises en œuvre : | ||
| + | * Utiliser une base de données ou un service d' | ||
| + | * Chiffrer les mots de passe avant de les stocker dans la base de données ou le service d' | ||
| + | * Utiliser l' | ||
| + | |||
| + | ====== Comment cela fonctionne | ||
| + | Les scénarios suivants peuvent être joués via l’exploitation de cette vulnérabilité : | ||
| + | -* Retrouver les identifiants de connexion en clair à partir du script d’authentification. | ||
| + | -* Obtenir un accès sur l' | ||
| + | |||
| + | ===== Exemple 1 ===== | ||
| + | |||
| + | |||
| + | Voici un exemple d'un script vérifiant un identifiant et un mot de passe en clair : | ||
| + | |||
| + | <code javascript> | ||
| + | function login() { | ||
| + | if (username == ' | ||
| + | window.location = '/ | ||
| + | } else { | ||
| + | window.location = '/ | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Exemple 2 ===== | ||
| + | |||
| + | Voici un exemple d'un script d' | ||
| + | |||
| + | <code javascript> | ||
| + | // Tableau contenant les noms d' | ||
| + | const users = [ | ||
| + | { | ||
| + | username: ' | ||
| + | password: ' | ||
| + | }, | ||
| + | { | ||
| + | username: ' | ||
| + | password: ' | ||
| + | } | ||
| + | ]; | ||
| + | |||
| + | // Récupération des champs de formulaire de connexion | ||
| + | const usernameField = document.getElementById(' | ||
| + | const passwordField = document.getElementById(' | ||
| + | const loginButton = document.getElementById(' | ||
| + | |||
| + | // Fonction qui vérifie si les champs de formulaire sont remplis et active le bouton de connexion si c'est le cas | ||
| + | function checkForm() { | ||
| + | if (usernameField.value && passwordField.value) { | ||
| + | loginButton.disabled = false; | ||
| + | } else { | ||
| + | loginButton.disabled = true; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // Écouteurs d' | ||
| + | usernameField.addEventListener(' | ||
| + | passwordField.addEventListener(' | ||
| + | |||
| + | // Écouteur d' | ||
| + | loginButton.addEventListener(' | ||
| + | event.preventDefault(); | ||
| + | |||
| + | // Vérification de l' | ||
| + | const user = users.find(u => u.username === usernameField.value && u.password === passwordField.value); | ||
| + | |||
| + | if (user) { | ||
| + | // Connexion réussie, redirection vers la page flag | ||
| + | window.location.replace('/ | ||
| + | } else { | ||
| + | // Afficher un message d' | ||
| + | alert(' | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | ====== Références ====== | ||
| + | URL : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | ====== Retour fiches vulnérabilités ====== | ||
| + | * [[cyber: | ||
cyber/vulnerabilite/javascript_authentification.1753791138.txt.gz · Dernière modification : 2025/07/29 14:12 de admin
