锐*网管系统文件包含审计-0day
字数 960 2025-08-09 19:14:07
锐捷网管系统文件包含漏洞分析与利用
漏洞概述
本漏洞涉及锐捷网络(Ruijie Networks)的网管系统存在文件包含(Local File Inclusion, LFI)漏洞,允许攻击者通过精心构造的请求读取服务器上的敏感文件。该漏洞已被提交至CNVD(国家信息安全漏洞共享平台)并获得编号。
漏洞背景
根据社区讨论,该漏洞最早由用户"xaitx"于2021年8月3日发现并提交,随后其他用户(N1eC、goddmeon)参与了讨论。从评论内容来看,该漏洞被认为是"新手级"难度,但实际危害较大。
漏洞原理
文件包含漏洞通常发生在应用程序动态包含文件时未对用户输入进行充分过滤的情况下。攻击者可以通过操纵文件路径参数来包含并执行服务器上的任意文件。
典型漏洞代码模式
<?php
$file = $_GET['file']; // 未过滤的用户输入
include($file . '.php');
?>
漏洞验证方法
-
基础文件包含测试:
http://target/path?file=../../../../etc/passwd -
日志文件注入:
http://target/path?file=../../../../var/log/apache2/access.log -
PHP伪协议利用:
http://target/path?file=php://filter/convert.base64-encode/resource=config.php
漏洞利用步骤
1. 信息收集
- 确定网管系统版本
- 识别可能存在文件包含的功能点
2. 漏洞探测
- 尝试包含已知的系统文件(如/etc/passwd)
- 使用../进行目录遍历
3. 敏感文件读取
- 配置文件:
config.php,database.php - 日志文件:Apache/Nginx访问日志
- 系统文件:
/etc/passwd,/etc/shadow
4. 进阶利用(如条件允许)
- 通过日志污染实现代码执行
- 使用PHP伪协议获取源代码
- 结合文件上传实现远程代码执行
防御措施
开发者修复建议
-
输入验证:
- 白名单验证允许包含的文件
- 禁止使用../等目录遍历字符
-
安全配置:
// 使用basename()函数限制文件名 $file = basename($_GET['file']); // 或设置包含目录 define('INCLUDE_DIR', '/path/to/includes/'); include(INCLUDE_DIR . $file); -
禁用危险函数:
- 在php.ini中设置
open_basedir限制 - 禁用
allow_url_include
- 在php.ini中设置
管理员临时缓解措施
- 应用WAF规则拦截包含../等特殊字符的请求
- 限制网管系统的外部访问
- 及时更新到最新补丁版本
漏洞影响
成功利用此漏洞可能导致:
- 敏感信息泄露(数据库凭证、系统信息)
- 服务器配置文件暴露
- 潜在的远程代码执行
- 系统完全沦陷
总结
该锐捷网管系统文件包含漏洞属于典型的输入验证不严导致的安全问题。虽然利用门槛较低,但危害较大。建议相关用户及时检查系统安全性,应用修复措施。
参考
- CNVD漏洞公告
- OWASP文件包含漏洞指南
- PHP安全编程最佳实践