我要投稿

欢迎您随时向我们投递您的稿件

什么是远程代码执行?

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


远程命令执行的原理是什么?

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


如何避免?

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

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

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

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

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

主办单位:上海市信息网络安全管理协会

地址:上海市闸北区秣陵路100号1917室    邮编:200070

本站所有内容均为上海市信息网络安全管理协会所有,不经上海市信息网络安全管理协会授权不得转载