查看: 57802|回复: 45

ShopNC多个漏洞(可暴力 getshell)

[复制链接]
发表于 2014-3-11 12:06:50 | 显示全部楼层 |阅读模式
前言
ShopNC是一款S是网城创想公司旗下服务于企业客户的电子商务系统,基于PHP5技术采用MVC 模式开发,本文介绍了shopnc多个漏洞结合,可getshell有点暴力-_-
任意文件删除
文件 control\store.php 1438 行 (还有几个同样的地方,新版已修复)
[AppleScript] 纯文本查看 复制代码
$model_upload = Model('upload');
        $file_info = $model_upload->getOneUpload(intval($_GET['file_id']));
        if(!$file_info){
            @unlink(ATTACH_SLIDE.DS.$_GET['img_src']);
        }else{


本地文件包含
文件 /framework/core/base.php 71行
[AppleScript] 纯文本查看 复制代码
$act_file = realpath( BasePath.DS."control".DS.$_GET['act'].".php" );
    }
    if ( is_file( $act_file ) )
    {
        require( $act_file );
        $class_name = $_GET['act']."Control";
        if ( class_exists( $class_name ) )

后台更新缓存写shell
文件 model/adv_model.php 416 行
[AppleScript] 纯文本查看 复制代码
/**
     * 更新一条广告缓存
     *
     * @param unknown_type $adv
     * @return unknown
     */
    public function makeAdvCache($adv){
        $lang   = Language::getLangContent();
        $tmp .= "<?php \r\n";
        $tmp .= "defined('InShopNC') or exit('Access Invalid!'); \r\n";
        if (is_numeric($adv) && $adv > 0){
 
            $condition['adv_id'] = $adv;
            $adv_info = $this->getList($condition);
            $adv = $adv_info['0'];
        }
    ..................................
                       $content = addslashes($v);
            $content = str_replace('$','\$',$content);
            //防止有$符号被解析成变量
            $tmp .= '$'.$k." = \"".$content."\"; \r\n";
        }
        //缓存文件存放位置及文件名
        $cache_file = BasePath.'/cache/adv/adv_'.$adv['adv_id'].'.cache.php';
        file_put_contents($cache_file,$tmp);
继续跟进getList函数 
public function getList($condition=array(), $page='', $limit='', $orderby=''){
    $param  = array();
    $param['table'] = 'adv';
    $param['field'] = $condition['field']?$condition['field']:'*';
    $param['where'] = $this->getCondition($condition);
    if($orderby == ''){
        $param['order'] = 'slide_sort, adv_id desc';
    }else{
        $param['order'] = $orderby;
    }
    $param['limit'] = $limit;
    return Db::select($param,$page);
}

写文件时,从数据库中遍历key,跟value 未过滤key,key 可以从数据库读取,当有数据库可控时,即可写入任意文件.
ShopNc GetShell
结合以上三个漏洞,即可优雅的 getshell
流程
任意文件删除 => 重装 => 更改数据库 shopnc_adv 键值 =>更新广告缓存 =>getshell
具体步骤
游客,如果您要查看本帖隐藏内容请回复


By:Yaseng

评分

参与人数 1i币 +10 收起 理由
Diana + 10 感谢分享

查看全部评分

回复

使用道具 举报

发表于 2014-3-11 12:28:23 | 显示全部楼层
沙发 支持
回复 支持 反对

使用道具 举报

发表于 2014-3-11 12:50:45 | 显示全部楼层
这个洞我看行
回复 支持 反对

使用道具 举报

发表于 2014-3-11 13:19:08 | 显示全部楼层
很黄很暴力
回复 支持 反对

使用道具 举报

发表于 2014-3-11 13:44:14 | 显示全部楼层
不错!试一试!
回复 支持 反对

使用道具 举报

发表于 2014-3-11 13:57:25 | 显示全部楼层
看看了 哈哈   
回复 支持 反对

使用道具 举报

发表于 2014-3-11 16:15:47 | 显示全部楼层
看下这个又暴力又优雅的getshell步骤、
回复 支持 反对

使用道具 举报

发表于 2014-3-11 16:30:25 | 显示全部楼层
不懂代码的孩子伤不起
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-3-11 17:36:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2014-3-11 17:47:08 | 显示全部楼层
90碉堡了,又一给力0day
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-7 04:56 , Processed in 0.036345 second(s), 17 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部