当前位置首页 > 百科资料> 正文

远程代码执行漏洞

2022-06-28 12:33:53 百科资料

远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

  • 中文名称 远程代码执行漏洞
  • 外文名称 Remote Code Execution Vulnerability
  • 所属学科 互联网
  • 形成原因 未针对代码中特殊函数入口做过滤

漏洞原理

  由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。命令注入攻击中WEB服务器没有过滤类似system(),eval(),exec()等函数是该漏洞攻击成功的最主要原因。

漏洞实例

  <?php

  $log_string =$_GET['log'];

  system("echo \"".date("Y-m-d H:i:s ")." ".$log_string."\" >> /logs/".$pre."/".$pre.".".date("Y-m-d").".log");}

  ?>

  恶意用户只需要构造xxx.php?log='id'形式的URL,即可通过浏览器在远程服务器上执行任意系统命令

解决方案

  ·建议假定所有输入都是可疑的,尝试对所有输入提交可能执行命令的构造语句进行严格的检查或者控制外部输入,系统命令执行函数的参数不允许外部传递。

  ·不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

  ·不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

  ·对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

  ·在发布应用程序之前测试所有已知的威胁。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net