漏洞預警 | ThinkPHP 5.x遠程命令執行漏洞


ThinkPHP采用面向對象的開發結構和MVC模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式,是一款兼容性高、部署簡單的輕量級國產PHP開發框架。

近日,ThinkPHP團隊發布了版本更新信息,修復一個遠程代碼執行漏洞。該漏洞是由於框架對控制器名沒有進行足夠的檢測,導致在沒有開啟強制路由的情況下可遠程執行代碼。攻擊者利用該漏洞,可在未經授權的情況下,對目標網站進行遠程命令執行攻擊。

 

該漏洞存在於thinkphp\library\think\route\dispatch\Module.php文件中,核心代碼如圖所示:

網上公布的poc為:http://xx.xx.xx/public/index.php?s=/index/\think\request/cache&key=1|phpinfo,當變量s傳進之后受explode函數截斷,$controller的值為:\think\request,代碼如圖所示:

 

在Thinkphp5.1.29的\think\Request類中找到可以利用的方法cache,代碼如圖所示:

 

Poc中cache&key=1|phpinfo經過代碼處理后函數$fun的值為phpinfo

 

本地搭建測試環境驗證,嘗試執行phpinfo命令,如下圖所示:

 

 

 解決方案如下 :

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM