ECSHOP模板过滤php代码,防止模板被挂马 时间:2013-10-21来源:模板堂 作者:模板堂 文章热度:
163
℃ ecshop的模板是支持php代码的,这个给一些不法分子创造了挂马的机会,这些不法分子挂马步骤很可能是: 1,通过ecshop的漏洞搞sql注入,暴出管理员密码md5值,然后通过**md5得到管理密码。(注:防止暴出管理密码md5值的方法是关闭display_errors,并且修改cls_mysql.php里的ErrorMsg函数,注释掉所有错误输出代码或把错误写入文件) 2,进入管理后台,通过模板管理-》库项目管理,编辑lbi文件,添加php代码,例如<?php @eval($_POST['lx']);?> 3,到这里,就完全控制这个站了,想挂什么马就挂什么马。 可见,ecshop的模板支持php代码这点是非常危险的,因此我们应该过滤模板里的所有php代码。 方法: 1,修改cls_templage.php文件,添加函数: function delete_php_code($content) { if(!empty($content)) { $pattern='/\<\?(.|\r\n|\s)*\?\>/U'; return preg_replace($pattern,'',$content); } } 复制代码 2,第165行$out = $this->_eval($this->fetch_str(file_get_contents($filename)));修改为: $out = $this->_eval($this->fetch_str($this->delete_php_code(file_get_contents($filename)))); 3,第260行$source = $this->fetch_str(file_get_contents($filename));修改为: $source = $this->fetch_str($this->delete_php_code(file_get_contents($filename))); 这样,模板里的php代码就被过滤掉了。 |
|