亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

ThinkPHP 5.0.* 遠(yuǎn)程命令執(zhí)行漏洞預(yù)警

0x00 事件背景

2019年1月11日,360CERT發(fā)現(xiàn)某安全社區(qū)出現(xiàn)關(guān)于ThinkPHP5 RCE漏洞的威脅情報(bào),不久之后ThinkPHP5官方與GitHub發(fā)布更新。

該更新修復(fù)了一處嚴(yán)重漏洞,該漏洞可導(dǎo)致遠(yuǎn)程命令代碼執(zhí)行

0x01 影響范圍

ThinkPHP 5.0.x

  • 5.0.x ~ 5.0.23

0x02 修復(fù)建議

官方在GitHub中進(jìn)行了更新:版本更新

enter description here

  • 升級(jí)代碼到最新版本5.0.24
  • 同時(shí)建議用戶在線上環(huán)境中關(guān)閉debug模式

0x03 漏洞驗(yàn)證

該漏洞危害高,影響嚴(yán)重:

enter description here

0x04 漏洞分析

漏洞主要出現(xiàn)在ThinkPHP?Request類的method方法中 (thinkphp/library/think/Request.php)

Request類可以實(shí)現(xiàn)對(duì)HTTP請(qǐng)求的一些設(shè)置,其中成員方法method用來獲取當(dāng)前請(qǐng)求類型,其定義如下:

enter description here

當(dāng)傳入的參數(shù)為false的時(shí)候,會(huì)取配置項(xiàng)var_method,其默認(rèn)值為_method

enter description here

$this->{$this->method}($_POST); 通過post參數(shù)_method可以實(shí)現(xiàn)對(duì)當(dāng)前類的任意方法進(jìn)行調(diào)用。

通過調(diào)用當(dāng)前類的構(gòu)造方法可以覆蓋任意成員屬性的值:

enter description here

這里通過覆蓋filter屬性,filter屬性保存了用于全局過濾的函數(shù)。

但是在thinkphp5.0.23中,會(huì)對(duì)filter值重新賦值為空,導(dǎo)致無法利用。

enter description here

在thinkphp/library/think/App.php中開啟debug的時(shí)候會(huì)調(diào)用Request類的param方法。

在thinkphp/library/think/Request.php param方法中會(huì)調(diào)用到method方法,并將參數(shù)設(shè)置為true。

enter description here

當(dāng)參數(shù)為true的時(shí)候,會(huì)調(diào)用server方法

enter description here

enter description here

會(huì)走到 input方法,通過之前方法覆蓋server成員屬性值為array(),input方法代碼如下:

enter description here最終會(huì)調(diào)用filterValue形成任意代碼執(zhí)行:

enter description here

0x05 時(shí)間線

2019-01-11?360CERT發(fā)現(xiàn)漏洞威脅情報(bào)

2019-01-11?ThinkPHP發(fā)布補(bǔ)丁更新

2019-01-11?360CERT發(fā)布預(yù)警分析

0x06 參考鏈接

  1. ThinkPHP5 github更新

上一篇:云+IPV6:2019路由器技術(shù)發(fā)展趨勢(shì)前瞻

下一篇:“安全+”沙龍第十四期在上海成功舉辦/1月4日