Thinkphp 5.0.24反序列化漏洞修复方案

Thinkphp 5.0.24存在反序化漏洞,入口点在thinkphp/library/think/process/pipes/Windows.php中__destruct魔术方法。

网上有很多讲解如何利用这个漏洞进行攻击,百度Thinkphp 5.0.24反序化漏洞会出来一堆。

但是如何修复这个漏洞没有讲解,我去Thinkphp 官网上也没有查到,我的建议一个是升级Thinkphp版本。

下面是我的修复方案:

第1种方案:修改removeFiles方法如下:

    /**
     * 删除临时文件
     */
    private function removeFiles()
    {
        foreach ($this->files as $filename) {
            if(is_object($filename)){
                continue;
            }
            if (file_exists($filename)) {
                @unlink($filename);
            }
        }
        $this->files = [];
    }

第2种方案:在Windows.php中添加两个方法

    public function __sleep()
    {
        throw new Exception('Cannot serialize '.__CLASS__);
    }

    public function __wakeup()
    {
        throw new Exception('Cannot unserialize '.__CLASS__);
    }

 

 

 

你可能感兴趣的:(PHP,thinkphp,5,漏洞,thinkphp,5,漏洞修复,thinkphp,5漏洞修复,thinkphp,5.0.24)