Photo by Arnold Francisca on Unsplash
[RT] Javascript - Authentification (5 pts)
Ce challenge est une introduction au problématique de sécurité liée a l’exécution de vérification sur la machine utilisateur.
Partie 1 : Énumération
Notre points de départ est la page web suivante:
Cette page simpliste contient un formulaire d'authentification. Nous allons donc nous logger pour vois ce que le site nous retourne.
Ici j'ai essayé de me connecter avec le login et mot de passe admin
L'erreur nous est renvoyé par une alerte java script. Nous allons donc nous pencher sur le code source de la page.
Partie 2 : Etude du Code JS
Pour continuer, je me suis rendu dans l'inspecteur d'élément. Dans l'onglet réseau je trouve la requête qui ma permis de recevoir le script d'authentification
Ouvrons donc ce fameux fichier javascript
/* <![CDATA[ */
function Login(){
var pseudo=document.login.pseudo.value;
var username=pseudo.toLowerCase();
var password=document.login.password.value;
password=password.toLowerCase();
if (pseudo=="4dm1n" && password=="sh.org") {
alert("Password accepté, vous pouvez valider le challenge avec ce mot de passe.\nYou an validate the challenge using this password.");
} else {
alert("Mauvais mot de passe / wrong password");
}
}
/* ]]> */
Dans ce code on remarque bien la comparaison entre les données rentrées par l'utilisateur et les bonnes données
if (pseudo=="4dm1n" && password=="sh.org") {
Nous avons plus cas nous connecter avec les bonnes données.
L'alerte box nous indique que le flag pour terminer le challenge correspond au mot de passe. flag : sh.org
#Conclusion Ce challenge permet de bien cerner les différentes problématiques de sécurité lié a la vérification des credentials en local. Un attaquant pourrais simplement prendre la comparaison et se connecter en tant qu'un user.