网站地图    收藏   

主页 > 后端 > 网站安全 >

Discuz! 后台第三方插件上传任意后缀文件拿shell(

来源:自学PHP网    时间:2015-04-17 10:16 作者: 阅读:

[导读] Discuz!利用插件拿Discuz!论坛shell的文章:http: www 2cto com Article 201307 230113 html拿shell,我在这篇文章里面用到的插件是zend加密的,可能有系统不支持。今天谈的这个利用插件拿shell,是未加...

Discuz!利用插件拿Discuz!论坛shell的文章: http://www.2cto.com/Article/201307/230113.html
拿shell,我在这篇文章里面用到的插件是zend加密的,可能有系统不支持。
 
今天谈的这个利用插件拿shell,是未加密的插件,基本都支持吧,不挑版本系统。 
 
另外有小伙伴说,安装插件需要 安全密码,确实有的论坛需要安全密码。
绕过安全密码第一版:http://www.2cto.com/Article/201310/248549.html
 
 绕过安全密码第二版:http://www.2cto.com/Article/201310/248550.html
 

问题插件出在:[MZG]点广告赚积分 1.0 
 
http://addon.discuz.com/?@mzg_advertise.plugin
 
 
 
过程如下:
 
1.先搜索 “MZG” 找到 点广告赚积分。 
2. 安装插件,安装GBK还是UFT8随你系统编码选择。安装好插件后,选择 “添加广告”。
 
 
3. 添加广告里面的 LOGO 文件上传,选本地上传,这里面未限制文件后缀,可以上传任意后缀名文件。
 
 
4. 查看添加的广告,看到了吧?
 
 
5. 看下shell 
 
分析下代码:
 
 

未对文件后缀名做任何判断,导致上传任意文件,导致出现代码执行.
 
加上 过安全密码装插件第二版,完美后台拿shell!
 
 
漏洞证明:
 
if (is_uploaded_file($_FILES['up_pic']['tmp_name']) and !$_FILES['up_pic']['error']) {
    $picarr = explode(".",$_FILES['up_pic']['name']);
                 $newpic = $pic?$pic:'source/plugin/mzg_advertise/logo/'.$_G['timestamp'].'.'.$picarr[count($picarr)-1];
if (move_uploaded_file($_FILES['up_pic']['tmp_name'],$newpic)) {
$pic = $newpic;
} else {
cpmsg("图片上传错误", $_POST['resturl']);
}
}

 
修复方案:

下架插件
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论