目录
[CISCN 2019华东南]Web11(smarty模板)
模板判断
以下是一张广为流传的图
这幅图的含义是通过这些指令去判断对方用的是什么模板,下面解释一下这幅图的意思:
我们可以看到有红色剪头和绿色箭头,绿色是执行成功,红色是执行失败。
首先是注入${7*7}没有回显出49的情况,这种时候就是执行失败走红线,再次注入{
{7*7}}如果还是没有回显49就代表这里没有模板注入;如果注入{
{7*7}}回显了49代表执行成功,继续往下走注入{
{7*'7'}},如果执行成功回显7777777说明是jinja2模板,如果回显是49就说明是Twig模板。
然后回到最初注入${7*7}成功回显出49的情况,这种时候是执行成功走绿线,再次注入a{*comment*}b,如果执行成功回显ab,就说明是Smarty模板;如果没有回显出ab,就是执行失败走红线,注入${"z".join("ab")},如果执行成功回显出zab就说明是