====== Javascript - Code source ====== ===== Description ===== **Les scripts JavaScript peuvent parfois contenir des informations sensibles qui permettent à un attaquant d'obtenir des informations utiles pour accéder à des ressources protégées de l'application. Par exemple, si une authentification est implémentée en JavaScript (ce qui est évidemment à proscrire), il sera possible pour un attaquant de "reverse" le code, c'est à dire l'analyser pour en comprendre le fonctionnement, et ainsi s'authentifier de manière illégitime. Les scripts JavaScript peuvent parfois contenir des mots de passe obfusqués ou des clefs d'API, qu'un utilisateur malveillant pourrait utiliser. ** ===== Pré-requis d'exploitation ===== Pour exploiter cette vulnérabilité, il est nécessaire d’avoir accès à une application qui utilise du JavaScript contenant des informations sensibles. ==== Connaissances nécessaires ==== * Connaissances de base du langage JavaScript. ==== Outils nécessaires ==== * Avoir accès à une console de navigateur (Firefox, Chrome). ===== Flux d'exécution ===== ==== Explorer ==== Naviguer sur l’application pour énumérer les endpoints et/ou pages de l’application, puis identifier les scripts JavaScript embarqués dans chaque page. ==== Expérimenter ==== Analyser les scripts identifiés et essayer de les désobusquer si nécessaire afin de découvrir d'éventuelles informations sensibles. ==== Exploiter ==== ===== Conséquences potentielles ===== Une exploitation réussie de ce type de vulnérabilité peut permettre : * L'accès à des informations sensibles tel que des identifiants de connexion ; * L'aide dans la recherche de vulnérabilité en énumérant le fonctionnement ou la/les version(s) des composants de l'application. ===== Contre-mesures ===== Les contre-mesures suivantes peuvent être mises en œuvre : * Ne pas inclure d'informations sensibles, même obfusquées, dans les scripts JavaScript ; * Utiliser un pare-feu applicatif pour bloquer les requêtes HTTP non autorisées ou suspectes. ====== Comment cela fonctionne ====== Les scénarios suivants peuvent être joués via l’exploitation de cette vulnérabilité : * L’utilisation d’informations confidentielles pour se connecter sur un espace protégé par un mot de passe. * L’énumération d’informations sensibles sur le serveur ou l’application afin de mener une attaque. ===== Exemple 1 ===== Dans cet exemple, le code source de l'application expose un mot de passe d'authentification en clair dans le JavaScript. Un attaquant peut facilement récupérer ces informations sensibles et les utiliser pour accéder au système. ====== Références ====== URL : * https://www.reveillere.fr/M2WEB/cours/JavaScript.pdf * https://profdoc.iddocs.fr/IMG/pdf/billiejoe_javascript_fiches.pdf * https://www.tutorialspoint.com/javascript/javascript_tutorial.pdf ====== Retour fiches vulnérabilités ====== * [[cyber:vulnerabilite:accueil|Cyber fiches vulnérabilités]]