Finecms 2.0版本文件上传漏洞分析

作者:vlan-911
日期:20200909
版本:v1.1
Finecms漏洞分析报告
概述:
Finecms 2.0.1版本存在文件上传漏洞,此漏洞可导致动态脚本文件上传
漏洞影响范围:FineCMS 2.0.1
危害等级:高
漏洞描述:
在Finecms 2.0.1版本中,/controllers/AttachmentController.php中的ajaxswfuploadAction函数处,由于黑名单过滤不完全,导致远程攻击者可以提交其他例如后缀为phtml的后门文件。攻击者可以利用此漏洞获取目标网站权限。
分析过程:
一.验证poc
1.测试poc代码,代码如下图(图1)
在这里插入图片描述

图 1
2.提交一个后缀名为.phtml的”phpinfo();”代码,而后访问此文件,效果如下图(图2/3/4)
在这里插入图片描述

图 2
在这里插入图片描述

图 3
在这里插入图片描述

图 4

二.挖掘漏洞
1.通过官方漏洞公告得知,问题出在/controllers/AttachmentController.php 中的ajaxswfuploadAction函数处,使用phpstorm挖掘此函数位置(见下图5)
在这里插入图片描述

图 5
2.可以看到ajaxswfuploadAction函数调用本地的一个post函数方法,通过测试代码探测此函数输出结果,代码如下(图6)
在这里插入图片描述

图 6
3.重新提交一次,打印出来的内容为“phtml”,效果如下图7,得知此函数作用是以post方式将文件后缀名即类型提交上去。但是并非是我们想要的结果,继续向下看
在这里插入图片描述

图 7
4.通过截断测试,发现“phtml”后缀名赋给“ext”,尝试挖掘ext所在位置(见图8)
在这里插入图片描述

图 8
在这里插入图片描述

5.我们追踪到“ext”的位置之后,发现此处使用黑名单过滤,但是仅仅对php动态脚本类型进行过滤。众所周知一些Apache配置文件会默认解析类似于“.phtml”、“.php3”、“.php5”等后缀名的文件(见图9)
在这里插入图片描述

图 9
6.可以利用burpsuite进行抓包重放,修改type属性后,我们发现文件上传类型是我们可控的,见图10
在这里插入图片描述

图 10

7.使用phpstorm进行截断测试,当代码执行到断点之后我们发现,文件类型”phtml”后缀名文件没有被拦截,上传成功。
在这里插入图片描述

结论:
此文件上传使用的黑名单过滤方式并没有完全过滤可执行的php脚本类型,且使用post方式提交导致后缀名对用户而言是可控的,从而导致了意外脚本上传执行
安全隐患:
远程攻击者可通过上传其他类型可被解析的动态脚本文件,从而上传木马拿到网站webshell,获取网站后台的控制权等
安全修复:
1.使用白名单过滤方式
2.修改httpd.conf配置文件,正确配置
3.严格控制上传文件的类型

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值