8. Javascript – Webpack

Dans ce challenge nous nous intéresserons à Webpack. C’est une technologie qui permet de développer dans plusieurs fichiers distincts, voire des frameworks (Vuejs, React, Angular) et de pouvoir build le code en un bundle exécutable sur le navigateur en production.

Ici on voit que les scripts directement liés sont bien des bundles, donc des fichiers bien trop abstraits pour être utilisables. On voit dans les sources que le navigateur a détecté webpack et a déjà tenté un « débundlage » du code :

Il est pour autant loin du code original car a été optimisé et abstrait pour justement éviter que tout le monde ait accès au code original (et éviter les failles). La seule possibilité que nous ayons est un fichier que l’on appelle un « map ». C’est un fichier qui explique comment nous sommes passé du code original au code compilé. On la trouve dans l’un des fichiers js de base :

Ici le sourceMappingURL est en clair, nous pouvons donc nous baser sur ce nom de fichier et sur l’emplacement des autres fichiers js (/static/js/) pour télécharger le fichier :

Dans le fichier, très dense, on peut commencer à chercher des indices : input, mdp, password, ou bien flag.

Et voilà notre mot de passe !

Résumé

ObjectifTrouver un mdp caché dans les sources
MéthodeTrouver le source mapping de webpack pour y trouver le code
OutilSources (debugger)
Temps15min
FlagBecauseSourceMapsAreGreatForDebuggingButNotForProduction


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *