0x01 简介
RCE(remote command/code execute)漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
0x02 exec "ping"
远程命令执行漏洞在之前的DVWA漏洞中已经进行过详细的描述,包括连接符号等,因此此处仅做漏洞发现演示。
image.png
执行结果为
image.png
因此此处存在远程命令执行漏洞
0x03 exec "eval"
输入phpinfo();
image.png
显示出了相关信息,因此此处存在远程代码执行漏洞
0x04 连接符
Windows系统:
|:只执行后面的语句。
||:如果前面的语句执行失败,则执行后面的语句。
&:两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。
&&:如果前面的语句为假,则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。
Linux系统:
;:执行完前面的语句再执行后面的语句,当有一条命令执行失败时,不会影响其它语句的执行。
|(管道符):只执行后面的语句。
||(逻辑或):只有前面的语句执行出错时,执行后面的语句。
&(后台任务符):两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。
&&(逻辑与):如果前面的语句为假则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。
``(命令替换):当一个命令被解析时,它首先会执行反引号之间的操作。例 echo whoami
0x04 防御方案
- 严格过滤用户输入的数据,禁止执行非预期系统命令。
- 减少或不使用代码或命令执行函数
- 客户端提交的变量在放入函数前进行检测
- 减少或不使用危险函数
本文仅为个人学习时所作笔记,非标准答案,文中如有错误,烦请各位师傅批评指正。