pikachu靶場 :五、RCE
概述
RCE漏洞,可以讓攻擊者直接向後臺服務器遠程注入操作系統命令或者代碼,從而控制後臺系統。
遠程系統命令執行
一般出現這種漏洞,是因爲應用系統從設計上需要給用戶提供指定的遠程命令操作的接口
比如我們常見的路由器、防火牆、入侵檢測等設備的web管理界面上
一般會給用戶提供一個ping操作的web界面,用戶從web界面輸入目標IP,提交後,後臺會對該IP地址進行一次ping測試,並返回測試結果。
而,如果,設計者在完成該功能時,沒有做嚴格的安全控制,則可能會導致攻擊者通過該接口提交“意想不到”的命令,從而讓後臺進行執行,從而控制整個後臺服務器
現在很多的甲方企業都開始實施自動化運維,大量的系統操作會通過"自動化運維平臺"進行操作。
在這種平臺上往往會出現遠程系統命令執行的漏洞,不信的話現在就可以找你們運維部的系統測試一下,會有意想不到的"收穫"-_-
遠程代碼執行
同樣的道理,因爲需求設計,後臺有時候也會把用戶的輸入作爲代碼的一部分進行執行,也就造成了遠程代碼執行漏洞。
不管是使用了代碼執行的函數,還是使用了不安全的反序列化等等。
因此,如果需要給前端用戶提供操作類的API接口,一定需要對接口輸入的內容進行嚴格的判斷,比如實施嚴格的白名單策略會是一個比較好的方法。
exec “ping”
ping一下網關地址,返回正常。
在命令行執行漏洞中,我們可以嘗試通過 &、&&、|、||、; 等符號拼接執行的命令,因爲我的環境是LINUX系統,所以使用ifconfig命令。
說明後端沒有嚴格處理,可以執行我們需要的命令。
exec “eval”
看一下後端代碼,沒有任何限制直接執行我們輸入的代碼。
那我們輸入個phpinfo(); ,得到返回執行的結果。