Fuite des traces .Net avec Trace.axd

De nombreux sites web sont mis en production avec une fonctionnalité de debug permettant d’avoir accès à tous les contenus échangés avec les utilisateurs, dont les logins et mots de passe. Il est donc recommandé de veiller à la désactivation de cette fonctionnalité.

En général, lorsqu’une application web est mise en production, les fonctionnalités de trace ou de debug sont désactivées.

ASP.NET, apporte une fonctionnalité de ce type qui se nomme tout simplement « ASP.NET Tracing » https://msdn.microsoft.com/en-us/library/bb386420.aspx et accessible publiquement avec une URL similaire à http://monsite.com/monapp/Trace.axd

Elle permet d’avoir accès, en temps réel à toutes les transactions en cours sur le site et voici un exemple de l’accès à cette fonctionnalité (A noter que cet exemple est bien entendu totalement faux, entièrement monté avec Photoshop et toute ressemblance avec un site réel ne serait que fortuite) :

application-trace

En visualisant les détails il est possible de visualiser une grande quantité d’informations utiles pour un debug comme les traces d’exécution .Net, l’arbre de contrôle des différents composants utilisés, les entêtes web, les cookies, l’état de la session…

Plusieurs aspects sont donc gênants, comme le fait de pouvoir visualiser :

  • Les cookies, contenant l’identifiant d’un utilisateur authentifié et permettant donc d’usurper sa session :

cookies

  • L’état de la session, dans laquelle on peut visualiser des données personnelles comme le nom, le mail…

etat-des-sessions

  • Tout le contenu des formulaires des requêtes de type soumission (POST), ce qui dans le cas d’une page nommée « login.aspx », laisse apparaitre le mot de passe de l’utilisateur :

formulaire-de-requete-de-soumission

Dans le cas où vous seriez amené à travailler sur le déploiement d’une (ou plusieurs) application, je vous recommande donc fortement d’ajouter à vos exigences de sécurité, celle de bien veiller à désactiver les fonctionnalités de debug.
Pour ASP.NET, cela se configure dans le fichier « web.config » :

configuration

Le pire étant qu’il est relativement aisé de retrouver ce type de page sur Internet avec un simple Google Dork comme : inurl:"Trace.axd"