Une API de cache de notes construit des commandes Redis en utilisant la concaténation de chaînes, créant des opportunités d'attaques par injection CRLF. Lorsque l'entrée utilisateur rencontre une sanitisation insuffisante, même un simple stockage de notes peut devenir un chemin vers l'injection de commandes Redis et la manipulation de sessions. Il est temps de tester vos compétences en injection de protocole !
L'injection CRLF est une vulnérabilité de sécurité web qui se produit lorsqu'un attaquant peut injecter des caractères de retour chariot (CR, ) et de saut de ligne (LF, ) dans l'entrée de l'application utilisée pour construire des commandes de protocole. Lorsque cette vulnérabilité existe dans les applications qui interagissent avec Redis, elle devient un vecteur d'attaque puissant pour l'empoisonnement de cache, le détournement de session et l'escalade de privilèges par injection arbitraire de commandes Redis.
Redis utilise un protocole textuel appelé RESP (Redis Serialization Protocol) où les commandes sont séparées par des séquences CRLF. Lorsqu'une application construit des commandes Redis en concaténant l'entrée utilisateur sans nettoyer les caractères CRLF, un attaquant peut terminer prématurément la commande prévue et injecter des commandes Redis supplémentaires. C'est similaire en principe à l'injection SQL, mais cible le protocole Redis au lieu des requêtes SQL. Toute application qui construit des commandes Redis par concaténation de chaînes plutôt qu'en utilisant des clients paramétrés est potentiellement vulnérable.
L'empoisonnement de cache par injection de commandes Redis permet aux attaquants d'écrire des paires clé-valeur arbitraires dans le cache. Dans les applications qui stockent les données de session dans Redis, cela peut mener au détournement de session ou à l'escalade de privilèges. En injectant des commandes comme SET session:admin_token, un attaquant peut créer ou écraser des données de session pour usurper l'identité d'utilisateurs privilégiés. D'autres scénarios d'attaque incluent l'empoisonnement du contenu HTML mis en cache pour diffuser des scripts malveillants, la modification de la configuration d'application stockée dans Redis ou l'utilisation de commandes EVAL pour exécuter des scripts Lua sur le serveur Redis.
Des vulnérabilités d'injection CRLF affectant les systèmes de cache ont été trouvées dans des applications en production dans diverses industries. Les conséquences vont de la falsification de données à la compromission complète de l'application. La prévention nécessite l'utilisation de bibliothèques client Redis qui gèrent correctement le paramétrage des commandes, le nettoyage de toutes les entrées utilisateur pour les caractères CRLF avant de les incorporer dans les commandes de protocole et la mise en place de contrôles d'accès sur les instances Redis. Les professionnels de la sécurité doivent comprendre ces modèles d'attaque pour les identifier efficacement lors des missions de test d'intrusion.
Créez un compte gratuit et pratiquez la cybersécurité.
Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.
Commencer à Hacker GratuitementLabs qui partagent des compétences similaires
Choisissez comment vous voulez commencer
Connectez-vous à votre compte