TP5.0.5_变量覆盖导致的RCE漏洞分析
- TP的RCE漏洞有两个大版本的区别
- TP 5.0-5.0.24 这个RCE在5.0.13之后的版本需要开启debug模式
- TP 5.1.0-5.1.30
- POC
http://localhost:8009/public/index.php POST: _method=__construct&method=GET&filter[]=system&s=whoami
漏洞分析
- 在经过
App::routeCheck()->Route::check()->$request->method()
一系列调用后进入Request类的method方法,method调用Request类的$_POST[Config::get('var_method')]
方法,而$_POST[Config::get('var_method')]
变量可以通过POST一个_method
值进行任意设值,根据POC那么这里变量的值就为__construct
。
- 接下来就是把POST上传的数据作为参数调用
Request::__construct
方法(因为POC伪造的method为__construct),跟进是一个变量覆盖,把Request.filter
和