Cisco RV345路由器高危漏洞研究分享
字数 1438 2025-08-05 11:39:35
Cisco RV345路由器高危漏洞研究分析报告
0x00 漏洞概述
Cisco RV345路由器存在高危命令执行漏洞,该漏洞存在于固件更新功能中的upload.cgi文件,具体漏洞点为fileparam参数。攻击者可通过构造恶意请求实现远程命令执行,最终获取路由器root权限。
受影响版本:
- 高版本固件(存在
upload.cgi文件) - 低版本固件(1.0.00.33及以下)
漏洞参考:
- ZDI-20-1100:https://www.zerodayinitiative.com/advisories/ZDI-20-1100/
0x01 环境准备
测试设备
- Cisco RV345路由器真机(可通过淘宝或闲鱼购买)
固件下载
- 固件版本1.0.00.33下载地址:
https://software.cisco.com/download/home/286288298/type/282465789/release/1.0.03.20?catid=268437899
工具准备
- 静态分析工具:IDA Pro
- 固件解包工具:binwalk
- 网络测试工具:Burp Suite
0x02 漏洞分析流程
1. 固件解包分析
binwalk -Me 固件文件
2. 定位关键文件
find -name "*cgi"
- 主要搜索
upload.cgi文件位置(高版本固件特有)
3. 漏洞定位
- 漏洞存在于
upload.cgi文件的fileparam参数处理逻辑 - 低版本固件(1.0.00.33)无此文件,但存在类似漏洞
0x03 漏洞利用过程
1. 低版本利用(1.0.00.33)
-
构造POC并通过Burp Suite发送
-
使用
reboot命令测试,确认路由器重启 -
尝试执行其他命令:
- 直接执行命令无回显时,使用重定向输出:
command > /www/xxx.html - 然后通过浏览器访问生成的html文件查看结果
- 直接执行命令无回显时,使用重定向输出:
-
权限提升:
- 低版本无
telnetd命令 - 尝试上传高版本busybox(可能因内核不兼容失败)
- 需寻找兼容的busybox版本上传执行
- 低版本无
2. 高版本利用
- 执行权限为
www-data用户,权限较低 - 无法执行
reboot等高权限命令 - 只能执行基础命令
0x04 补丁分析
未修补版本:
- 直接使用
sprintf将输入复制给变量v11 - 最终通过
system函数执行,无任何过滤
已修补版本:
- 增加了
match_regex函数进行正则表达式过滤 - 过滤特殊字符,防止命令注入
0x05 技术要点总结
-
版本选择策略:
- 高版本测试受阻时,可降级到低版本测试
- 结合低版本测试结果反推高版本利用方式
-
命令执行技巧:
- 当命令无回显时,使用重定向输出到web目录
- 通过创建可访问文件(xxx.html)查看命令结果
-
权限提升方法:
- 尝试上传兼容的busybox
- 寻找其他提权路径
-
测试方法论:
- 灰盒测试:结合高低版本特性综合分析
- 补丁对比:通过比对修补前后的代码差异确认漏洞点
0x06 防御建议
- 及时更新到最新固件版本
- 对路由器管理界面实施网络访问控制
- 禁用不必要的远程管理功能
- 监控路由器异常行为(如意外重启)
0x07 扩展思考
- 如何自动化检测此类漏洞?
- 除
upload.cgi外,其他CGI接口是否也存在类似问题? - 在受限环境下(无回显、低权限)如何有效利用漏洞?
本报告详细分析了Cisco RV345路由器的命令执行漏洞,涵盖了从环境搭建到漏洞利用的全过程,并提供了防御建议。研究人员可根据此报告复现漏洞或进行相关安全研究。