
Script de preuve de concept démontrant l'énumération d'utilisateurs dans LiquidFiles via le point de terminaison de réinitialisation de mot de passe, permettant l'identification d'utilisateurs valides pour des attaques par force brute.
Cette vulnérabilité a été identifiée dans LiquidFiles version 4.1 et inférieures.
Lors de l'initiation d'une réinitialisation de mot de passe via le point de terminaison « POST /password_reset », l'application répond différemment selon que l'adresse e-mail fournie est enregistrée ou non. Une redirection est émise dans les deux cas, et la réponse inclut le cookie « _filetransfer_session ». Lorsque ce cookie est utilisé pour accéder au chemin racine (« / »), le message d'erreur résultant diffère selon la validité de l'adresse e-mail soumise.
Cela permet efficacement à un attaquant de compiler une liste d'utilisateurs valides, qui peut ensuite être exploitée dans des attaques telles que le brute-force ou le password spraying.
Réponse de réinitialisation de mot de passe – utilisateurs existants/valides
Réponse de réinitialisation de mot de passe – utilisateurs inexistants/invalides
Après plusieurs tentatives de réinitialisation de mot de passe, un verrouillage basé sur l'adresse IP est déclenché comme mesure de sécurité, empêchant toute nouvelle requête provenant de la même adresse IP. Cependant, ce mécanisme est insuffisant, car il peut être contourné à l'aide d'outils gratuits. Par exemple, contournez le verrouillage en utilisant des proxys AWS API Gateway combinés à l'extension « IP Rotate » dans Burp Suite. Le script attend un proxy local sur le port 8080.
Application utilisée pour contourner le verrouillage basé sur l'adresse IP :
Cette divergence dans les messages d'erreur permet l'énumération automatisée de noms d'utilisateur ou d'adresses e-mail valides. Pour le démontrer, j'ai créé un script de preuve de concept qui prend une liste d'adresses e-mail potentiellement enregistrées et identifie celles qui sont valides en fonction du comportement de réponse de l'application.
Sortie du script d'énumération d'utilisateurs :

Une fois les noms d'utilisateur valides identifiés, ils pourraient être exploités dans une attaque de brute-force ou de password spraying. Étant donné que certains utilisateurs peuvent avoir des mots de passe faibles ou réutilisés, cela représente un risque de sécurité élevé.
La probabilité d'exploitation est élevée, les mesures de sécurité actuelles sont facilement contournées et l'exploitation est simple. L'impact est considéré comme moyen, car après avoir obtenu une liste d'utilisateurs valides, il faut encore compromettre un compte par le biais d'attaques de password spraying ou de brute-force.
Notez que cette application est utilisée par de nombreuses organisations différentes, presque toujours exposée à l'internet public. Cela rend la tâche aussi simple que de récupérer les adresses e-mail ou les noms des employés sur internet et de lancer une attaque de password spraying sur l'application.
Par conséquent, ce problème présente un risque élevé.
La version 4.2 corrige ce problème en introduisant des mécanismes de verrouillage basés sur l'utilisateur et en désactivant les messages d'erreur distincts qui permettent l'énumération des utilisateurs par défaut.