Ping是Windows、Unix和Linux系統下的一個命令。ping也屬於一個通信協議,是TCP/IP協議的一部分。利用“ping”命令可以檢查網絡是否連通,可以很好地幫助我們分析和判定網絡故障。應用格式:ping空格IP地址,如圖:
RCE英文全稱:remote command/code execute
分為遠程命令執行ping和遠程代碼執行evel。
漏洞出現的原因:沒有在輸入口做輸入處理。
我們常見的路由器、防火牆、入侵檢測等設備的web管理界面上
一般會給用戶提供一個ping操作的web界面,用戶從web界面輸入目標IP,提交后,后台會對該IP地址進行一次ping測試,並返回測試結果。其實這就是一個接口,可以讓攻擊者直接向后台服務器遠程注入操作系統命令或者代碼,從而控制后台系統,這就是RCE漏洞。具體后端代碼如下:
$result.=shell_exec('ping '.$ip);//直接將變量拼接進來,沒做處理
- 1
具體案例(遠程命令執行ping):
下圖說明開發者想讓用戶輸入的只有IP地址:
但是如果沒有做嚴格的處理,我們就可以拼接其他的語句上去,比如:
net start 查看開啟了哪些服務:
效果圖
從上可以看出,相當於直接操控服務器電腦的cmd命令行!高危漏洞!
具體案例(遠程代碼執行evel):
后端代碼:
if(@!eval($_POST['txt']))
- 1
可以看出沒有做處理,和上面(遠程命令執行ping)不同的是,這里是PHP代碼,而上面(遠程命令執行ping)執行的是命令行。
執行后效果圖