定義:攻擊者可以隨意執(zhí)行系統(tǒng)命令,命令可以連接執(zhí)行:&,||,|
- 命令執(zhí)行漏洞:直接調(diào)用操作系統(tǒng)命令
- 代碼執(zhí)行漏洞:靠執(zhí)行腳本代碼調(diào)用操作系統(tǒng)命令
1.PHP命令執(zhí)行
(1)添加管理員
1.查看本地用戶:net user
2.添加用戶:net user name pwd /add
3.提權(quán)為管理員:net localgroup administrator name /add
(2)代碼執(zhí)行
eval()函數(shù): 把字符串按照PHP代碼來執(zhí)行
<?php eval($_REQUEST['code'])?>
code=phpinfo()
(3) PHP代碼執(zhí)行漏洞
ob_start()、array_map()等
** perg_replace()函數(shù):**執(zhí)行一個正則表達式的搜索和替換
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement進行替換
(4)動態(tài)函數(shù)調(diào)用
php解析器可以根據(jù)¥fun的值來調(diào)用對應的函數(shù)。
2.JAVA命令執(zhí)行
struts2代碼執(zhí)行漏洞
防范:
- 盡量不要用系統(tǒng)執(zhí)行命令
- 在進入執(zhí)行命令函數(shù)之前,變量要做過濾,對敏感字符轉(zhuǎn)義
- 使用動態(tài)函數(shù)之前,確保使用的函數(shù)是指定的函數(shù)之一
- 對php來說,不能完全控制的危險函數(shù)最好不要用