鍍金池/ 問答/PHP  Python/ Typecho官方原文件里有后門?(1.1-17.10.30-release版本

Typecho官方原文件里有后門?(1.1-17.10.30-release版本 2018年1月25日測試)

是這樣子,前幾天我的空間幾個網(wǎng)站集體被黑。排查了好幾天,基本都把該清除的清除掉了。今天備份的時候,用D盾順手檢測了一下,發(fā)現(xiàn)一個用typecho建的個人博客依舊報毒,我又一一做了排查,在清除掉根目錄下的兩個明顯的新加惡意代碼后,整體又用D盾查殺了一下,顯示如下。

圖片描述

因為不太熟悉typecho的結構,也是為了偷懶,發(fā)現(xiàn)三個提醒都在VAR文件夾里,就決定用官方的原來版本的var目錄集體替換下。

下載,對比,順手查詢~~

官方版本提示如下:

圖片描述

也就是說:/var/Typecho/I18n/GetText.php 原文件依舊提醒有eval內(nèi)藏后門。

老實說,代碼盲,對PHP不懂。怕這個D盾G點太高,誤查,于是又用類似后門查殺軟件守護神試了一下,/var/Typecho/I18n/GetText.php 原文件依舊爆毒~~。
圖片描述

不想證明什么,這個帖子只想問下熟悉PHP和typecho的大伙兒,這個文件到底是不是有問題?還是就這樣兒,現(xiàn)在正擔心網(wǎng)站安全問題。

對了,我是從Typecho官網(wǎng)下載的1.1-17.10.30-release版本,感興趣的可以是自己下載一個看一下。具體文件是/var/Typecho/I18n目錄下的GetText.php文件.望高手給小白指路~~

回答
編輯回答
莫小染

只要確定 /usr/langs/ 裡面的語言不被惡意修改的話, 那個eval 是可以的

使用原因是為了使用po 文件中的複數(shù)定義:
例如

"Plural-Forms: nplurals=2; plural=(n != 1);n"

這種判斷式用下面替換的方法來做驗證是比較簡單的。

    private function select_string($n)
    {
        $string = $this->get_plural_forms();
        $string = str_replace('nplurals',"\$total",$string);
        $string = str_replace("n",$n,$string);
        $string = str_replace('plural',"\$plural",$string);

        $total = 0;
        $plural = 0;

        eval("$string");
        if ($plural >= $total) $plural = $total - 1;
        return $plural;
    }
2018年4月7日 13:03
編輯回答
悶騷型

因為好多的木馬使用的了eval函數(shù),所以100%的查木馬軟件會將它認為是后門,至于是不是,你可以直接查看這個源碼

2018年4月26日 11:59
編輯回答
久舊酒

迷信一個安全防護軟件是不可取的!

2017年3月3日 09:01