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代碼就被過濾掉了。
新聞熱點
疑難解答