热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CiscoRV345路由器高危漏洞研究分享

 0x0 前言思科公司是全球领先的网络解决方案供应商。依靠自身的技术和对网络经济模式的深刻理解,思科成为了网络应用的成功实践者之⼀。 0x1 简介关键点:upload.cgi中的fileparam参数

 

0x0 前言

思科公司是全球领先的网络解决方案供应商。依靠自身的技术和对网络经济模式的深刻理解,思科成为了网络应用的成功实践者之⼀。

 

0x1 简介

关键点:upload.cgi中的fileparam参数,可以参考:https://www.zerodayinitiative.com/advisories/ZDI-20-1100/

 

0x2 准备

固件版本 1.0.00.33:https://software.cisco.com/download/home/286288298/type/282465789/release/1.0.03.20?catid=268437899

 

0x3 工具

1.静态分析工具:IDA

2.系统文件获取:binwalk

3.抓包改包工具:Brup Suite

 

0x4 测试环境

Cisco RV345路由器真机测试,可以在某宝上或者某鱼上购买(学到的知识是无价的)。

 

0x5 漏洞分析

1.可以通过binwalk -Me参数进行解包。

2.find -name “*cgi” 主要目的是搜索根目录在哪,可以看到如下图,路径比较长,所以通过find是最 好找到根目录的办法。

3.通过详细的描述可以发现,漏洞点出现在upload.cgi文件中(如果是低版本的1.0.00.33版本的话, 没有这个文件,只有高版本才有),那么漏洞点也出现在fileparam参数中,可以大致推测出漏洞点应该存在于固件更新页面。

4.本人想通过reboot命令对路由器进行探测是否执行命令成功,发现貌似不能执行reboot,执行其他 命令也没什么反应,可能到这里有的兄弟就已经放弃了,就觉得是不是没有这个漏洞,或者漏洞点 不在这,但是…

5.本人将固件版本降低重刷回 v1.0.00.33(官方最低版本)。

6.然后使用我们已经构造好的POC并放到Burp Suite中,并使用reboot命令,发现路由器重启,证明存在命令执行漏洞。但是想查看有什么命令能执行。

7.本人就想了一个办法,通过重定向符号”>”,将打印的数据重定向到能访问的页面,或者创建一个可以访问的页面(xxx.html)。

8.低版本的Cisco RV345是没有telnetd这个命令的,但是高版本是存在telnetd的,本人便想通过上传高版本的busybox执行telnetd,发现居然不可以(可能是高版本的内核或者其他什么的不兼容低版本吧),那这样只能在网上找一个busybox上传了。最终获取到ROOT权限。

9.经过各种测试,发现高版本是存在漏洞的,但是权限是比较低的 www-data 用户权限,和漏洞详细描述的一样,所以不能执行reboot命令,只能执行比较简单的命令。

 

0x6 补丁对比

1.没有补过漏洞的,没有过滤直接通过sprintf 复制给v11,最终执行system。

2.多了一个match_regex函数的正则表达式,这样便不能输入特殊字符,也就无法导致命令执行漏洞了。

 

0x7 总结

固件为高版本,感觉不能执行命令时,可以切换一下思路,将版本降低,再重试,或许有不同的收获,然后结合低版本的思路,再去灰盒高版本固件。

当漏洞存在时,使用 ls 等命令都无法输出命令结果时,那么此时就可以换一下思维,通过 “>” 重定向符号或者其他方式将数据打印到访问的页面中。


推荐阅读
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文介绍如何在 Visual Studio Code 中使用 Jupyter Notebook 插件,包括创建、编辑和运行笔记本的基本操作。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 使用 GitHub、JSDelivr、PicGo 和 Typora 构建高效的图床解决方案
    本文详细介绍了如何利用 GitHub 仓库、JSDelivr CDN、PicGo 图床工具和 Typora 编辑器,搭建一个高效且免费的图床系统。通过此方案,用户可以轻松管理和上传图片,并在 Markdown 文档中快速插入高质量的图片链接。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 本文详细介绍了在使用 SmartUpload 组件进行文件上传时,如何正确配置和查找文件保存路径。通过具体的代码示例和步骤说明,帮助开发者快速解决上传路径配置的问题。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ... [详细]
author-avatar
隐姓埋名er
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有