渗透测试之远程系统命令执行

远程系统命令执行

远程系统命令执行
一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器
现在很多的甲方企业都开始实施自动化运维,大量的系统操作会通过"自动化运维平台"进行操作。 在这种平台上往往会出现远程系统命令执行的漏洞,不信的话现在就可以找你们运维部的系统测试一下,会有意想不到的"收获"-_-

命令分隔符:

在linux系统中:; 可以用 | 和 || 代替
; 前面的执行完执行后面的
| 是管道符,显示后面的执行结果
|| 当前面的执行出错时执行后面的
可用**%0A和 \n**换行执行命令

在Windows系统中:不能用 ; 可以用&、&&、|、||代替
&前面的语句为假则直接执行后面的
&&前面的语句为假则直接出错,后面的也不执行
|直接执行后面的语句
||前面出错执行后面的

远程系统命令执行需要注意的函数:
assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)

防御:
1、过滤&和|
2、安全配置php相关参数 通过Php配置文件里面有个disable_functions = 配置,这个禁止某些php函数(assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``)等
服务器便是用这个来禁止php的执行命令函数。
3.对用户输入数据进行严格的判断。

猜你喜欢

转载自blog.csdn.net/weixin_45380284/article/details/114438341
今日推荐