打开题目
看到xff就应该想到抓包
看回显也是127.0.0.1,我们盲猜是不是ssti模板注入
输入{{7*7}}显示49
可以看的出来flag在根目录下
输入{system(‘cat /flag’)}
得到flag
知识点:
漏洞确认
一般情况下输入{$smarty.version}就可以看到返回的smarty的版本号
得到Smarty版本是3.1.30
利用方式
{php}{/php}
标签
Smarty支持使用{php}{/php}
标签来执行被包裹其中的php指令
这题不支持使用{php}{/php}标签,否则会报错
在Smarty3的官方手册里有以下描述:
Smarty已经废弃{php}标签,强烈建议不要使用。在Smarty 3.1,{php}仅在SmartyBC中可用。
{if}标签
Smarty的{if}条件判断和PHP的if非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if},也可以使用{else} 和 {elseif},全部的PHP条件表达式和函数都可以在if内使用,如||*, or, &&, and, is_array(), 等等,如:{if is_array($array)}{/if}*
同样也可以得到flag
参考文章:
PHP的模板注入(Smarty模板)_smarty ctf php-CSDN博客