Pikachu-RCE(遠程命令和遠程代碼-執行漏洞)


RCE(remote command/code execute)概述        
RCE漏洞,可以讓攻擊者直接向后台服務器遠程注入操作系統命令或者代碼,從而控制后台系統。

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

 

現在很多的甲方企業都開始實施自動化運維,大量的系統操作會通過"自動化運維平台"進行操作。在這種平台上往往會出現遠程系統命令執行的漏洞。

遠程代碼執行
同樣的道理,因為需求設計,后台有時候也會把用戶的輸入作為代碼的一部分進行執行,也就造成了遠程代碼執行漏洞。 不管是使用了代碼執行的函數,還是使用了不安全的反序列化等等。
因此,如果需要給前端用戶提供操作類的API接口,一定需要對接口輸入的內容進行嚴格的判斷,比如實施嚴格的白名單策略會是一個比較好的方法。

 

Windows系統命令拼接

  1. “|”:管道符,前面命令標准輸出,后面命令的標准輸入。例如:help |more
  2. “&” commandA & commandB 先運行命令A,然后運行命令B
  3. “||” commandA || commandB 運行命令A,如果失敗則運行命令B
  4. “&&” commandA && commandB 運行命令A,如果成功則運行命令B

 

開始我們的實驗      

exec"ping"  遠程命令模塊

我們直接輸入: 127.0.0.1 & ipconfig    。我們發現出現了亂碼

 

 

我們可以執行以下步驟

1. 同時按"win + R" ,並輸入 regedit 進入注冊表

2. 找到 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe,如果該項下已存在 CodePage 項,則把值改為十進制 "65001",點擊確定即可;

 如果不存在,在該項下(HKEY_CURRENT_USER\Console\)新建一個 DWORD(32位值),命名為 "CodePage",值設為 "65001"。然后關閉注冊表管理器。

刷新,再次輸入  192.168.43.116 & ipconfig

 

 

這就說明,后台沒有做嚴格的處理,我們可以先輸入目標ip通過命令拼接,輸入一些命令

可以看下源代碼(路徑如下)  使用了shell_exec()函數,直接將ip和命令拼接起來,實現了遠程的命令執行

 

 

現在開始我們的

exec"evel"  遠程代碼模塊

先隨意輸入一個值,

 

我們再輸入一句php代碼   phpinfo();

 

結果

 

可以看下源代碼(路徑如下)對輸入的信息沒有做任何處理,又使用了eval()這種比較危險的函數,從而執行了代碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM