1.漏洞原理
ECShop的user.php文件中的display函数的模板变量可控,导致注入,配合注入可达到远程代码执行。攻击者无需登录等操作,可直接远程把webshell写入服务器。
$back_act变量来源于HTTP_REFERER,我们可以控制它。
Ecshop使用了 php 模版引擎 smarty ,该引擎有两个基本的函数assign()、display()。assign()函数用于在模版执行时为模版变量赋值,display()函数用于显示模版。smarty运行时,会读取模版文件,将模版文件中的占位符替换成assign()函数传递过来的参数值,并输出一个编译处理后的php文件,交由服务器运行。具体分析见:https://blog.csdn.net/xiaoi123/article/details/82787213