Then obfuscation is more secure
Description
Write Up: Njal
Catégorie: JavaScript
Author : Mr.Un1k0d3r
Difficulté: Unknown
Enoncé
Juste le phrase d'interrogation : Then obfuscation is more secure?
Et un formulaire de connexion.
Solution détaillée
Afin de trouver le mot de passe correcte et de se connecter avec succès à un compte, on réalise les étapes suivantes :
-
Inspecter le formulaire de connexion avec les outils de développement : Dans le code JavaScript, on identifie des chaînes obfusquées. Le code utilise un tableau pour stocker des chaînes de caractères sous forme de valeurs hexadécimales obfusquées.
-
Déchiffrer les Chaînes Obfusquées :
Chaque chaîne est codée en utilisant des séquences hexadécimales. Pour les décoder, on suit ces étapes : a. Convertir les Valeurs Hexadécimales On convertit chaque séquence hexadécimale en texte lisible. // Exemple de conversion de hex en texte en JavaScript console.log(String.fromCharCode(0x76, 0x61, 0x6C)); // Affiche "val" b. Déchiffrer les Chaînes dans le Code On applique cette conversion à toutes les valeurs hexadécimales dans le tableau _0xc360. Voici les résultats : \x76\x61\x6C → "val" \x23\x63\x70\x61\x73\x73 → "#cpass" \x61\x6C\x6B\x33 → "alk3" \x30\x32\x6C\x31 → "02l1" \x3F\x70\x3D → "?p=" \x69\x6E\x64\x65\x78\x4F\x66 → "indexOf" \x68\x72\x65\x66 → "href" \x6C\x6F\x63\x61\x74\x69\x6F\x6E → "location" \x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x27\x65\x72\x72\x6F\x72\x27\x3E\x57\x72\x6F\x6E\x67\x20\x70\x61\x73\x73\x77\x6F\x72\x64\x20\x73\x6F\x72\x72\x79\x2E\x3C\x2F\x64\x69\x76\x3E → "
Wrong password sorry." \x68\x74\x6D\x6C → "html" \x23\x63\x72\x65\x73\x70\x6F\x6E\x73\x65 → "#cresponse" \x63\x6C\x69\x63\x6B → "click" 4. Analyser l'Utilisation des Chaînes : On remplace les indices du tableau par les chaînes déchiffrées dans le code : $("#cresponse").click(function () { var password = $("#cpass").val(); // Obtient la valeur du champ #cpass var correctPassword = "02l1alk3"; // Mot de passe attendu if (password == correctPassword) { // Vérifie si le mot de passe est correct if (document.location.href.indexOf("?p=") == -1) { // Vérifie si "?p=" est absent de l'URL document.location = document.location.href + "?p=" + password; // Ajoute "?p=" suivi du mot de passe à l'URL } } else { $("#cresponse").html("Wrong password sorry."); // Affiche un message d'erreur } }); On en déduit que le mot de passe attendu est "02l1alk3". 4. Soumettre le mot de passe dans le formulaire :- On soumet via le formulaire de connexion le mot de passe "02l1alk3" trouvé précédemment et on obtient le flag.
- Enfin, on soumet le flag " FLAG-5PJne3T8d73UGv4SCqN44DXj " pour résoudre le challenge.