Server Side Template Injection, 服务端模板注入,最初由James Kettle在2015年的黑帽大会上讲解。来自小米安全的安全工程师——Dayeh(呆爷),主要从模版注入Flask方向为大家带来了精彩的分享。
模板注入相较于其他注入,例如xss、sql注入、xml注入等攻击,其本质思想是一致的,服务器端接受了用户的输入,未做验证或过滤便作为模板内容的一部分,在进行模板渲染时候,发生了代码执行。目前有很多模板引擎,都可能存在这样的问题。本次议题结合Flask框架及其使用的Jinja2模板,讲解了模板注入的原理、注入手段和一些绕过方式,以及结合Python沙盒逃逸思路的一些攻击手段,最后针对模板注入漏洞的发现及防御进行了一些讨论。
模板注入基本成因
沙箱逃逸的思路
绕过防御
使用JINJA2沙箱