什麼是指令執行漏洞?
日常的網絡通路中,我們常常可以看到某些Web網站具有執行系統指令的功能,比如:有些網站提供ping功能,我們可以輸入一個IP位址,它就會幫我們去嘗試ping目标的IP位址,而我們則可以看到執行結果。
但是如果使用者沒有遵循網站的本意,而去輸入精心構造的指令,可能會對網站本身的功能邏輯産生逆轉,導緻讓目标網站執行惡意指令。
![]()
漏洞複現篇——指令執行漏洞
指令執行漏洞-分類
-
web代碼層指令執行
exec(“whoami”);
-
第三方元件指令執行漏洞
WordPress中用來處理圖檔的ImageMagick元件
JAVA中的指令注入漏洞(struts2/ElasticsearchGroovy等)
vBulletin 5.x 版本通殺遠端代碼執行
-
系統層面指令執行漏洞
MS08-067
bash破殼漏洞
指令執行漏洞産生條件
指令注入漏洞産生原因有兩點
1.使用者可以控制輸入的内容
2.使用者輸入的内容被當作指令執行
指令執行常用函數
-
反撇号
`` 輸出并傳回shell結果。
用法:
echo
;whoami
-
system()
system() 輸出并傳回最後一行shell結果。
system(‘whoami’)
-
passthru()
隻調用指令,把指令的運作結果原樣地直接輸出到标準輸出裝置上。 相同點:都可以獲得指令執行的狀态碼
passthru(‘whoami’)
-
shell_exec()
通過 shell 環境執行指令,并且将完整的輸出以字元串的方式傳回
shell_exec($_POST[‘system’]);
-
exec()
不輸出結果,傳回最後一行shell結果,所有結果可以儲存到一個傳回的數組裡面。
exec($_POST[‘system’],
o
u
t
p
)
;
r
i
n
t
r
(
output);print_r(
output);printr(output);
- popen()
- proc_open()
- pcntl_exec()
常用系統指令與功能
- Windows 下同時執行多條指令文法格式
- Linux 下同時執行多條指令文法格式
實驗環境:
- PHPstudy
- 火狐浏覽器
- DVWA靶場
模拟實驗:
低級别
源代碼