Thinkphp 5.0.24反序化漏洞修复
Thinkphp 5.0.24存在反序化漏洞,入口点在thinkphp/library/think/process/pipes/Windows.php中__destruct魔术方法。
网上有很多讲解如何利用这个漏洞进行攻击,百度Thinkphp 5.0.24反序化漏洞会出来一堆。
但是如何修复这个漏洞没有讲解,Thinkphp官网上也没有查到怎么修复,其实我还是建议大家升级一下Thinkphp的最新版本,毕竟thinkphp5已经不再更新了,只是常规维护。
下面是分享一下我从网上收集的2种修复方案:
第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__); }