RCE(Pikachu)

machacha發表於2024-05-12

作用

可以讓攻擊者直接向後臺伺服器遠端注入作業系統命令或者程式碼,從而控制後臺系統。

原理

遠端系統命令執行
一般出現這種漏洞,是因為應用系統從設計上需要給使用者提供指定的遠端命令操作的介面
比如我們常見的路由器、防火牆、入侵檢測等裝置的web管理介面上
一般會給使用者提供一個ping操作的web介面,使用者從web介面輸入目標IP,提交後,後臺會對該IP地址進行一次ping測試,並返回測試結果。 而,如果,設計者在完成該功能時,沒有做嚴格的安全控制,則可能會導致攻擊者透過該介面提交“意想不到”的命令,從而讓後臺進行執行,從而控制整個後臺伺服器

現在很多的甲方企業都開始實施自動化運維,大量的系統操作會透過"自動化運維平臺"進行操作。 在這種平臺上往往會出現遠端系統命令執行的漏洞,不信的話現在就可以找你們運維部的系統測試一下,會有意想不到的"收穫"-_-

遠端程式碼執行
同樣的道理,因為需求設計,後臺有時候也會把使用者的輸入作為程式碼的一部分進行執行,也就造成了遠端程式碼執行漏洞。 不管是使用了程式碼執行的函式,還是使用了不安全的反序列化等等。

因此,如果需要給前端使用者提供操作類的API介面,一定需要對介面輸入的內容進行嚴格的判斷,比如實施嚴格的白名單策略會是一個比較好的方法。

漏洞型別

遠端命令執行漏洞
遠端程式碼執行漏洞
無參函式rce
無回顯rce

RCE程式碼及命令執行(詳解)_rce命令執行-CSDN部落格

繞過

命令執行RCE及其繞過詳細總結(各情景下的繞過)_rce反彈shell繞過-CSDN部落格

pikachu靶場

exec "ping"

ping 一下百度試試

www.baidu.com

image-20240506195949235

我們可以使用拼接符

| #只執行|後面的語句

|| #如果前面命令是錯的那麼就執行後面的語句,否則只執行前面的語句
& #&前面和後面命令都要執行,無論前面真假
&& #如果前面為假,後面的命令也不執行,如果前面為真則執行兩條命令
; #前後都執行,無論前面真假,類似&

127.0.0.1& whoami

image-20240506201223397

兩條命令都執行了,我們可以遠端木馬連線或者反彈shell

exec "eval"

phpinfo();

image-20240506201908960

抓包發現是post請求,引數為txt

image-20240506202320691

可以用蟻劍連線,密碼為txt

也可以用1 & system("whoami");類似的payload