安全公告

Thinkphp5.0.*存在远程代码执行漏洞。

漏洞描述

Thinkphp5.0.*存在远程代码执行漏洞。攻击者可以利用漏洞实现任意代码执行等高危操作。

目前官方已经出了补丁:

https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003

漏洞出现在处理请求的类中。攻击者可以控制类的属性及类方法的调用。

影响范围

影响以下版本:

ThinkPHP5.0 – 5.0.23

缓解措施

高危:目前网上已有该远程代码执行漏洞的POC,请尽快升级更新官方的补丁 。

目前官方已经出了补丁:

https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003

漏洞出现在框架处理请求的类中。根据官方建议,可以通过git更新最新框架代码 https://github.com/top-think/framework。

手动修复
编辑 library/think/Request.php 文件, 查找:

  1. $this->method = strtoupper($_POST[Config::get('var_method')]);
  2. $this->{$this->method}($_POST);
复制代码为:
  1. $method = strtoupper($_POST[Config::get('var_method')]);
  2. if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
  3. $this->method = $method;
  4. $this->{$this->method}($_POST);
  5. } else {
  6. $this->method = 'POST';
  7. }
  8. unset($_POST[Config::get('var_method')]);

威胁推演:此漏洞为远程代码执行漏洞,基于全球使用该产品用户的数量和暴露在网上的端口情况,恶意攻击者可能会开发针对该漏洞的自动化攻击程序,实现漏洞利用成功后自动植入后门程序,并进一步释放矿工程序或是DDOS僵尸木马等恶意程序,从而影响到网站服务的正常提供。

ThinkPHP5.0.*远程代码执行漏洞预警的更多相关文章

  1. IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现

    CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...

  2. Struts2远程代码执行漏洞预警

    近期struts2 框架再现高危远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638.利用此漏洞可对使用了struts2框架的网站进行远程命令执行,对服务器造成威胁.请相关单位 ...

  3. Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

    2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache ...

  4. IIS6远程代码执行漏洞复现CVE-2017-7269

    简述 CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行 ...

  5. thinkphp5.0.22远程代码执行漏洞分析及复现

    虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...

  6. 【预警通告】Apache Struts2 远程代码执行漏洞

    Apache Structs2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638.攻击者可以在使用该插件上传文件时,修改HTTP请求头中的 ...

  7. Tomcat/7.0.81 远程代码执行漏洞复现

    Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...

  8. 「白帽挖洞技能提升」ThinkPHP5 远程代码执行漏洞-动态分析

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,在保持出色的性能和至简代码的同时,也注重易用性.但是简洁易操作也会出现漏洞,之前ThinkPHP官方修复了一个严重的远程代码执行漏 ...

  9. IBM WebSphere 远程代码执行漏洞安全预警通告

    近日,IBM发布安全通告称修复了一个WebSphere Application Server中一个潜在的远程代码执行漏洞(CVE-2018-1567).攻击者可以构造一个恶意的序列化对象,随后通过SO ...

随机推荐

  1. linux内核中的regmap是如何初始化的?

    1. 内核版本 5.2.0 2. 请看devm_regmap_init_i2c (include/linux/regmap.h) /** * devm_regmap_init_i2c() - Init ...

  2. 简易的CRM系统案例之SpringMVC+JSP+MySQL+myBatis框架版本

    主要对上一版DAO框架的替换hibernate变成myBatis 简易的CRM系统案例之SpringMVC+JSP+MySQL+hibernate框架版本 src/mybatis.xml <?x ...

  3. ThinkPhp5 mongodb 使用自定义objectID出错解决

    在Tp5中使用mongodb 使用自定义ObjectId时报错:Cannot use object of type MongoDB\\BSON\\ObjectID as array 查询源码发现在to ...

  4. 阶段5 3.微服务项目【学成在线】_day18 用户授权_03-方法授权-jwt令牌包含权限

    修改认证服务的UserDetailServiceImpl类,下边的代码中 permissionList列表中存放了用户的权限, 并且将权限标识按照中间使用逗号分隔的语法组成一个字符串,最终提供给Spr ...

  5. java对list进行排序

    主要讲述对list进行排序的几种方式 1.先来个简单的,上代码 import java.util.ArrayList; import java.util.Collections; import jav ...

  6. python 基础之确认文件是否存在

    def check_exist_bills(): file_dir=os.listdir('../db') bills_db_list=[] for item in file_dir: if item ...

  7. Treeview控件如何获得子节点的所有父节点的名称

    Delphi或c++ 的treeview控件,比如一个节点上面有个父节点,这个父节点上面还有一个父节点,如何获得这两个父节点的名字呢?请给出实现代码 先定义一个nodevarnode:TTreeNod ...

  8. 在node.js中使用Set

    var set = new Set(); set.add(1); console.log("test1 : " + set.has(1) + " ; " + s ...

  9. jQuery动态创建html元素的常用方法汇总

    在使用jQuery进行WEB程序设计的时候非常有用.分享给大家供大家参考.具体方法如下: 一般来说,可以通过以下几种方式动态创建html元素: 1.使用jQuery创建元素的语法 2.把动态内容存放到 ...

  10. 【Leetcode_easy】824. Goat Latin

    problem 824. Goat Latin solution class Solution { public: string toGoatLatin(string S) { unordered_s ...