模板注入(SSTI)

模板注入

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。静态模板文件会在运行时将变量/占位符替换为HTML页面中的实际值。当前流行且使用广泛的模板引擎有Smarty,Twig,Jinja2,FreeMarker,Velocity。

服务器端模板注入(SSTI)漏洞将允许攻击者将注入模板指令作为用户输入,从而导致XSS或任意代码的执行(RCE)。

利用方法:

找到模板注入并识别模板引擎后的第一步是阅读文档。不应低估这一步骤的重要性; 其中一个日常利用的东西纯粹来自好学的文档细读。主要关注领域是:

  • ‘对于模板作者’部分涵盖基本语法。
  • “安全注意事项” - 开发您正在测试的应用程序的人无法阅读此内容,并且可能包含一些有用的提示。
  • 内置方法,函数,过滤器和变量的列表。
  • 扩展/插件列表 - 默认情况下可以启用某些列表。

参考文章: