# SSTI

## Basic

Etapes:

* Trouver des paramètres reflétés dans la page cible
* Tester des payloads génériques pour prouver la présence d'une SSTI

```
{{7*7}}
${7*7}
<%= 7*7 %>
${{7*7}}
#{7*7}

PHP based:
{php}print "HELLO"{/php}
```

* Exploiter (exemple de RCE: <%= system("whoami") %>)

### Enumération du moteur de template

2 possibilités:

* Tester des payloads génériques permet de trouver le moteur de template selon la synthaxe qui est acceptée.

![](https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2Fk3ZXWCus3JR6HUP22zgx%2Fimage.png?alt=media\&token=89f641e4-925e-4977-9e62-74051d3cf70b)

* Essayer de générer une erreur de syntaxe (Si le message d'erreur est trop verbeux, il peut faire fuiter le moteur de template utilisé).&#x20;

### Ressource: Payloads

{% embed url="<https://cheatsheet.hackmanit.de/template-injection-table/index.html>" %}

{% embed url="<https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection>" %}

{% embed url="<https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#methodology>" %}

## Outils

### SSTImap

SSTimap est un outil de scan de vulnérabilité SSTI intéractif.

Ressource: <https://github.com/vladko312/SSTImap>
