Il n'est pas rare, lors d'un test d'intrusion sur une application web, de découvrir des vulnérabilités de type injection de template côté serveur. Suivant le moteur de templating utilisé, l'exploitation peut être plus ou moins ardue. Cet article propose des techniques d'exploitation appliquées aux moteurs utilisés par le framework Django.
1. Introduction
Si les applications développées en Python ne sont pas la toute dernière mode en termes de technologie de développement web, on en croise tout de même de plus en plus souvent en test d'intrusion. Généralement, ces applications s'articulent autour de frameworks tels que Flask [1] ou Django [2] qui servent du contenu HTML généré depuis des templates.
Cette utilisation des moteurs de templating dans le cadre des applications web ouvre la voie à des vulnérabilités qui restent méconnues : les injections de template ou server side template injections (SSTI).
Cette vulnérabilité peut être le fruit d'un mauvais traitement des entrées utilisateur ou de la présence de fonctionnalités avancées, mais dangereuses telle que la possibilité, dans une application web, de gérer des templates d'e-mails à envoyer.
Suivant le moteur de templating sous-jacent, l'exploitation de cette vulnérabilité peut être plus ou moins aisée et plus ou...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première