美文网首页
【漏洞预警】ThinkPHP5 任意命令执行

【漏洞预警】ThinkPHP5 任意命令执行

作者: odaycaogen | 来源:发表于2019-01-17 12:45 被阅读0次

    此故事灵感源于seebug,如有雷同,纯属盗版

    漏洞描述

    2019年1月11日,Thinkphp5发布安全更新,修复了一个可能的GetShell安全漏洞。

    http://www.thinkphp.cn/topic/60992.html

    官方刚更新,高能的白帽子大军已经开始蠢蠢欲动了,开始了各种分析,尝试漏洞复现

    漏洞分析

    昨天我也研究了下代码,尝试复现,于是渣渣的我么能成功 于是乎分析什么的就看大佬如何挥舞了

    参考文献

    https://paper.seebug.org/787/

    https://bbs.ichunqiu.com/thread-49591-1-1.html

    https://bbs.ichunqiu.com/thread-49557-1-1.html

    漏洞测试

    c=system&f=ls&_method=filter

    _method=construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

    打了个残包立马关闭了 就点到为止

    漏洞修复

    升级到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')]);

    只允许五种方法,保证变量在可控范围内

    注:请业务侧注意测试升级后网站功能是否正常

    总结:此漏洞继续升温,大佬真优秀

    明年尽量适当的避开thinkphp

    文章转载自 123``blog

    相关文章

      网友评论

          本文标题:【漏洞预警】ThinkPHP5 任意命令执行

          本文链接:https://www.haomeiwen.com/subject/txqidqtx.html