
介绍
服务器端模板注入(也称为SSTI)是与模板引擎使用不当相关的一类漏洞,可以利用它在系统上执行潜在的代码。当用户输入被连接到模板中而不是作为数据传递时,就会发生SSTI攻击。当攻击者在服务器端执行的模板中嵌入恶意有效负载时,可能会导致在服务器上执行远程代码。
服务器端模板引擎通常被web应用程序用作轻松管理web页面和电子邮件中的动态内容的一种方式。它们在提供丰富功能的应用程序(如博客、营销应用程序和内容管理系统)*特中**别常见。许多模板引擎已经构建了沙盒形式的保护措施来应对这种风险;然而,攻击者通常能够逃离模板引擎沙箱并访问底层操作系统。
影响及危害
由于SSTI漏洞倾向于用来远程代码执行,因此它们通常具有很高的严重程度。黑客执行成功的SSTI攻击可以通过在模板引擎上下文中执行代码并逃离沙箱来获得对应用服务器的完全访问权。这可能导致服务器、应用程序和底层操作系统的完全破坏。
如何防护
开发人员必须:
- 确保没有启用用户提交或修改新模板。
- 按照预期使用模板引擎API,通过将动态数据作为呈现函数的单独上下文参数传递,尽可能确保逻辑和表示的分离。
- 不要把变量和模板字符串混在一起。