合肥市高新區長(cháng)江西路與科學(xué)大道交口5F創(chuàng )業(yè)園A座309
136 5560 1775

網(wǎng)站首頁(yè)被篡改 Thinkphp5.0.0~5.0.23遠程代碼執行漏洞修復

發(fā)表日期:2019-08-12 瀏覽次數:65535次

最近發(fā)現多個(gè)Thinkphp5開(kāi)發(fā)的網(wǎng)站被掛馬,導致首頁(yè)被篡改,其他頁(yè)面無(wú)法正常訪(fǎng)問(wèn)的情況。

木馬中均包含以下代碼:define('Viv, bebegim.','Denzel-你的英雄');

經(jīng)過(guò)檢查,這些攻擊是利用了Thinkphp5.0.0~5.0.23版本遠程進(jìn)行代碼調用的漏洞進(jìn)行的getshell。
Thinkphp5官方已經(jīng)發(fā)布了安全更新版本:ThinkPHP5.0.24版本發(fā)布——安全更新
你可以將版本更新到5.0.24版本及以上。

如果不方便更新到最新版本,那么可以按照最新版本的Request類(lèi)的method方法進(jìn)行手動(dòng)修復,具體如下:

1.打開(kāi)/thinkphp/library/think/Request.php文件,找到method方法(約500行),修改下面代碼:
$this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);

改為:

$method = strtoupper($_POST[Config::get('var_method')]);

if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
$this->method = $method;
$this->{$this->method}($_POST);
} else {
$this->method = 'POST';
}
unset($_POST[Config::get('var_method')]);

2.再在 /thinkphp/library/think/App.php這里加上如下代碼,搜索“獲取控制器名”可以找到
$controller = strip_tags($result[1] ?: $config['default_controller']);
$controller = $convert ? strtolower($controller) : $controller;
改成
$controller = strip_tags($result[1] ?: $config['default_controller']);
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
$controller = $convert ? strtolower($controller) : $controller;

將文章分享到:

版權所有:?jiǎn)⑦~科技-合肥網(wǎng)站建設 皖I(lǐng)CP備19009304號-1 皖公網(wǎng)安備 34010402702162號

網(wǎng)站建設,網(wǎng)站設計公司啟邁科技,為眾多企業(yè)提供網(wǎng)站建設,網(wǎng)站制作,響應式網(wǎng)站設計,手機網(wǎng)站建設,微網(wǎng)站,模板建站,企業(yè)郵箱等一站式互聯(lián)網(wǎng)解決方案和建站服務(wù)10年。