【漏洞预警】Thinkphp 5.0.*全版本远程代码执行漏洞

xiaopang996 11天前 309

image.png
修复建议:

git更新最新框架代码 https://github.com/top-think/framework

最佳回复
  • xiaopang996 11天前

    【漏洞详情】
    ThinkPHP 由于框架对控制器名没有进行足够的检查,在没有开启强制路由的情况下可能导致服务器被入侵。
    受影响版本:ThinkPHP 5.0.23 以下所有版本;
    【修复方案】
    升级到5.0.24版本

    通过修改以下代码来缓解漏洞:
    编辑 library/think/Request.php 文件, 查找:

    $this->method = strtoupper($_POST[Config::get('var_method')]);
    $this->{$this->method}($_POST);
    

    修改为:

    $method = strtoupper($_POST[Config::get('var_method')]);
    if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
       $this->method = $method;
       $this->{$this->method}($_POST);
        } else {
        $this->method = 'POST';
         }
    unset($_POST[Config::get('var_method')]);
    
最新回复 (4)
  • xiaopang996 楼主 最佳回复 11天前
    感谢TA
    0 引用 2

    【漏洞详情】
    ThinkPHP 由于框架对控制器名没有进行足够的检查,在没有开启强制路由的情况下可能导致服务器被入侵。
    受影响版本:ThinkPHP 5.0.23 以下所有版本;
    【修复方案】
    升级到5.0.24版本

    通过修改以下代码来缓解漏洞:
    编辑 library/think/Request.php 文件, 查找:

    $this->method = strtoupper($_POST[Config::get('var_method')]);
    $this->{$this->method}($_POST);
    

    修改为:

    $method = strtoupper($_POST[Config::get('var_method')]);
    if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
       $this->method = $method;
       $this->{$this->method}($_POST);
        } else {
        $this->method = 'POST';
         }
    unset($_POST[Config::get('var_method')]);
    
  • likeni 11天前
    感谢TA
    0 引用 3

    现在的fastadmin 最新版本要处理吗@xiaopang996

  • taitou 11天前
    感谢TA
    1 引用 4

    本次更新部分的内容不完全统计:
    1、applicationadminviewgeneralprofileindex.html //变了个input type=password
    2、applicationadminviewindexlogin.html //验证码的随机数从问号?变成&
    3、applicationcommoncontrollerBackend.php //兼容php7.3 将continue 改成了 continue 2 共2处
    4、applicationconfig.php //变了版本号
    5、publicassetscssbackend.css //修正layer弹窗的icon路径为libs/fastadmin-layer
    6、publicassetscssbackend.min.css //同上
    7、publicjsbackendaddon.js //添加了zindex:99,去除了Layer.alert(ret.msg)
    8、publicjsbackendindex.js //去除fastadmin的更新信息的ajax
    9、publicjsrequire-backend.min.js //添加有关dropdown的内容
    10、publicjsrequire-table.js //添加有关dropdown的内容
    11、publicjsrequire-upload.js //添加有关dropdown的内容
    12、publicinstall.php //密码输入过滤空格及提示
    13、thinkphplabrarythinkdbQuery.php //修正一个错误拼写protected读取主表
    14、thinkphplabrarythinkmodelrelationHasMany.php //修正漏洞
    15、thinkphplabrarythinkmodelrelationMorphMany.php //修正漏洞
    16、thinkphplabrarythinkmodelrelationMorephOne.php //修正漏洞
    17、thinkphplabrarythinkCollection.php //添加了一个新的values方法
    18、thinkphplabrarythinkModel.php //修正漏洞
    19、thinkphplabrarythinkRequest.php //修正方法请求漏洞
    20、thinkphplabrarythinkVilidate.php //修正漏洞
    21、thinkphpbase.php //变更版本号
    22、vendorcomposerinstalled.json //tp变更版本号
    23、vendorkarsonzhangfastadmin-addons/src/common.php //修正了引用空间部分
    24、composer.json //tp变更版本号

  • xiaopang996 楼主 9天前
    感谢TA
    0 引用 5
    likeni 现在的fastadmin 最新版本要处理吗@xiaopang996

    最新版的 fastadmin不需要处理

  • 未登录
    6
返回