远程代码执行
远程代码执行:Remote Code Execute
远程命令执行:Remote Command Execute
1. 为啥要远程执行代码
- 路由器、防火墙、入侵检测等设备的web管理界面
- 自动化运维的管理系统
- 提供给用户一个接口,去执行命令,但是被黑客恶意利用了。
2. 危害
- 获取服务器权限
- 获取敏感信息
- 写入恶意文件
- 植入木马病毒勒索软件等
3. php 涉及函数
system() :执行外部程序,并且显示输出
exec()/shell_exec(): 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回
pcntl_exec() :在当前进程空间执行指定程序
passthru() :执行外部程序并且显示原始输出
popen() :打开进程文件指针
proc_open() :执行一个命令,并且打开用来输入/输出的文件指针
eval() 把字符串 code 作为PHP代码执行 (一句话木马)
assert() :检查一个断言是否为 false
preg_replace(): 执行一个正则表达式的搜索和替换
create_function() :创建一个匿名函数并且返回函数名称
call_user_func()/call_user_func_array():把第一个参数作为回调函数调用
usort()/uasor