定义:攻击者可以随意执行系统命令,命令可以连接执行:&,||,|
- 命令执行漏洞:直接调用操作系统命令
- 代码执行漏洞:靠执行脚本代码调用操作系统命令
1.PHP命令执行
(1)添加管理员
1.查看本地用户:net user
2.添加用户:net user name pwd /add
3.提权为管理员:net localgroup administrator name /add
(2)代码执行
eval()函数: 把字符串按照PHP代码来执行
<?php eval($_REQUEST['code'])?>
code=phpinfo()
(3) PHP代码执行漏洞
ob_start()、array_map()等
** perg_replace()函数:**执行一个正则表达式的搜索和替换
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换
(4)动态函数调用
php解析器可以根据¥fun的值来调用对应的函数。
2.JAVA命令执行
struts2代码执行漏洞
防范:
- 尽量不要用系统执行命令
- 在进入执行命令函数之前,变量要做过滤,对敏感字符转义
- 使用动态函数之前,确保使用的函数是指定的函数之一
- 对php来说,不能完全控制的危险函数最好不要用