RCE漏洞小结

0 阅读2分钟

 RCE漏洞简介

所谓RCE漏洞,即Remote Code/Command Execution,远程代码执行远程命令执行漏洞。在很多Web应⽤中,开发⼈员会使⽤⼀些函数,这些函数以⼀些字符串作为输⼊,功能是将输⼊的字符串当作代码或者命令来进⾏执⾏。当⽤户可以控制这些函数的输⼊时,就产⽣了RCE漏洞。

一旦有RCE漏洞被攻击者利用,就相当于攻击者有了在被攻击者服务器上执行任意命令的权限。

远程代码与远程命令的案例

先在phpstudy的WWW目录下创建两个php代码作为RCE漏洞入口

RemoteCode.php代码如下

<?php
    $code=$_GET['x'];
    eval($code);
?>

RemoteOrder.php代码如下

<?php
    $code=$_GET['x'];
    echo system($code);
?>

然后启动phpstudy的Apache服务

http://127.0.0.1/RemoteCode.php?x=phpinfo();输入路径后获取到系统详细信息。

http://127.0.0.1/RemoteOrder.php?x=ipconfig 输入windows命令显示IP配置信息。

RCE漏洞防护

1.在进入 执行命令函数前 进行严格的 检测 和 过滤;

2.尽量不要 使用命令执行函数,不能完全控制的危险函数 最好不使用,如果非要用的话可以加验证 防止被其他人利用;

3.对于eval函数,一定要保证用户 不能轻易接触eval的参数,如果需要运用到,必须严格判断输入的数据,是否含有危险变量。

RCE漏洞靶场练习

墨者学院

靶场只要能用选什么都行,这里我用的墨者学院不需要自己搭建环境的靶场。

命令注入执行分析

这个相对简单,先看背景和目标(了解管道符与系统命令),有一个大致方向

启动靶场环境后连接对应IP进入靶场

F12打开开发者面板,输入182.44.114.36 | ls(管道符命令,相当于在系统下执行ls命令。什么系统可以分析返还的数据包内容或者ping的响应包长度得知是linux系统),没有数据包流通就提示IP格式不正确,猜测校验机制是在前端执行的

打开BP进行拦截抓包,将数据包发送到重放模块(这里也可以采取其他方式绕过检验)

得到fiag所在文件位置

利用重定向指令打开该文件182.44.114.36 | cat<key_174181060921312.php

得到对应fiag