某日志设备漏洞挖掘-从后台RCE到前台RCE
字数 1019 2025-08-09 13:33:42
某日志设备漏洞挖掘:从后台RCE到前台RCE
前言
本文详细记录了对某日志设备的漏洞挖掘过程,从信息收集到后台RCE,再到前台RCE的完整流程。该漏洞已通知厂商并完全修复。
信息收集阶段
1. 获取设备使用手册
- 重点关注以下功能点:
- 网络连通性配置
- 日志查看功能
- 系统备份功能
- 默认凭证信息
2. 获取系统源码
- 发现目标设备提供系统源码下载
- 下载后本地审计Web目录源码
3. 查找默认凭证
- 通过官方教学帖子发现默认账号密码
- 尝试使用默认凭证登录后台成功
后台RCE漏洞挖掘
1. 可疑文件分析
- 发现
command-html.php文件可疑 - 该文件将
cmd参数传递给cmdhandle.php
2. 命令执行分析
- 检查
cmdhandle.php文件:- 无任何过滤直接执行传入的命令
- 可能是设备的调试页面
3. 漏洞验证
- 直接访问
cmdhandle.php并传入命令 - 确认具有高权限执行能力
- 成功写入Webshell获取控制权
前台RCE漏洞挖掘
1. 重新审计代码
- 由于后台Webshell失效,转向寻找前台RCE
2. 配置文件分析
- 检查配置文件发现:
- 配置路径信息
- 默认MySQL账号密码
- 无直接可利用的关键信息
3. 认证机制分析
- 发现后台功能使用
chksession进行身份验证 - 目标转向寻找无身份验证的文件
4. 快速筛选方法
- 使用命令删除所有包含身份验证的文件:
rm -rf $(grep -ril 'chksession()' ./) - 大幅减少需要审计的文件数量
5. 发现前台RCE
- 通过关键字搜索发现命令执行点
sy_addmount.php文件中:username参数用户可控- 直接拼接进命令执行部分
- 无任何过滤措施
6. 漏洞验证
- 发送POST请求:
POST /account/sy_addmount.php username=|id - 成功执行系统命令
- 发现多处类似无验证命令拼接漏洞
总结
关键漏洞点
- 默认凭证未修改:设备使用默认账号密码
- 后台调试接口暴露:
cmdhandle.php无过滤执行命令 - 前台命令注入:多个文件存在无验证的命令拼接
修复建议
- 强制修改默认凭证
- 移除或严格限制调试接口访问
- 对所有用户输入进行严格过滤和验证
- 实施最小权限原则
- 对命令执行函数使用白名单限制
审计技巧
- 优先查找命令执行函数:
system(),exec(),passthru()等 - 快速筛选无认证文件的方法
- 关注用户可控参数到危险函数的传递路径
本案例展示了从信息收集到漏洞挖掘的完整过程,强调了默认凭证管理和输入验证的重要性。