原理:
RCE就是代码执行和命令执行的统称,当服务器接收用户的数据且会用命令执行函数(system)或代码执行函数(eval)执行,就可能存在RCE漏洞
该漏洞在黑盒测试中基本见不到,基本都是白盒测试或对应CMS的漏洞
危害:
命令执行或代码执行;直接写入webshell
利用思路:
黑盒测试比较罕见:在功能点进行命令拼接符;除此以外是利用网上公开的漏洞;
白盒测试:搜索特定函数进行代码审计
黑盒测试:
功能点测试
在调用用户输入作为命令执行或代码执行的内容时,利用命令拼接符:
| 只执行后面那条命令 || 只执行前面那条命令
& 两条命令都会执行 && 两条命令都会执行
网上爆出漏洞
除了功能点就是网上已经公开的漏洞:如搜索log4j rce漏洞
白盒审计:
搜索特点函数进行代码审计
rce相关函数:
1.PHP:
eval()、assert()、pregT replace()、call _user_ func()、call _user_ func_ array()以及
array_ map()等
system、shell_exec、 popen、passthru、proc_ open等
2. Python:
eval exec subprocess os system commands
3Java:
Java中没有类似php中eval函数这种直接可以将字符串转化为代码执行的函数,
但是有反射机制,并且有各种基于反射机制的表达式引擎,如: OGNL、SpEL、 MVEL等