开发者社区> 问答> 正文

阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法

阿里提示  Discuz uc.key   泄露导致代码注入漏洞uc.php的解决方法

展开
收起
学习无限好 2016-08-21 18:20:24 17517 0
16 条回答
写回答
取消 提交回答
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    这个问题难道都不解决的吗?
    已经更新到最新的还是报discuz中的/api/uc.php存在代码写入漏洞。
    2018-05-16 10:08:00
    赞同 展开评论 打赏
  • 互联网产品体验
    Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    真是如此
    2017-10-04 22:12:24
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    4,6楼方法可以的。我刚用了,阿里云不报警了
    2016-10-08 11:20:23
    赞同 展开评论 打赏
  • ali  太不是东西了。
    2016-09-01 11:57:10
    赞同 展开评论 打赏
  • 已修复,不错!
    2016-08-29 17:54:38
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    阿里为了钱,检测代码只以他自己的为准
    2016-08-27 13:32:46
    赞同 展开评论 打赏
  • 小站长和大家一起共同成长
    Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    约285行:
    view sourceprint?
    01
    function updateapps($get, $post) {
    02
        if(!API_UPDATEAPPS) {
    03
            return API_RETURN_FORBIDDEN;
    04
        }
    05
        //$UC_API = $post['UC_API'];
    06
        //dz官网修复uc-key漏洞。以下加上
    07
        $UC_API = '';
    08
        if($post['UC_API']) {
    09
            $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
    10
            unset($post['UC_API']);
    11
        }
    12
        //end


    -------------------------

    回 15楼学习无限好的帖子
    加上代码 当时提示可以,  过两天 又提示有漏洞。。
    2016-08-26 11:10:14
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    真是如此
    2016-08-26 09:14:27
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    已经是最新版的了,昨天随便给uc.php文件加个空格提交替换后,阿里云提示已修复,今天又提示有这个漏洞

    -------------------------

    回 11楼51干警网的帖子
    已换成官方最新版,查看了下上面两处地方也都修改了的,依旧会报错,所以怀疑是阿里云以自己的修改作为标准答案
    2016-08-25 10:56:17
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    请问你们是怎么解决的有,我查看自己的代码和上面说改过后的是一样的啊,但阿里云还是提示漏洞。如何办,直接忽略吗?

    -------------------------

    Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    阿里云只是以自己的为标准答案?
    2016-08-25 10:42:03
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    上面的方法确定能行么?
    2016-08-24 16:29:45
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法

    文件路径:bbs/api/uc.php

    修复方式:
    1. 查找 updatebadwords 函数:
    function updatebadwords($get, $post){
        // ...
        // 添加: 约241行    
        // Discuz uc.key泄露导致代码注入漏洞
        if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {
            $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';
        }
        // -- end : 2016-08-22 --
        
        $data['findpattern'][$k] = $v['findpattern'];
        // ...
    }

    2. 查找 updateapps 函数:
    function updateapps($get, $post) {
        // ...
        // 修改: 约280行
        $UC_API = '';
        if($post['UC_API']) {
            // $UC_API = $post['UC_API']; // 注释
            $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
            unset($post['UC_API']);
        }
        // ...
    }

    2016-08-23 21:36:14
    赞同 展开评论 打赏
  • 回 4楼光影久久的帖子
    楼上并没有说明修改结果啊,我的代码跟楼上提供的一模一样,还是提示有漏洞。
    2016-08-23 11:37:17
    赞同 展开评论 打赏
  • Re阿里提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
    if(!API_UPDATEBADWORDS) {
                return API_RETURN_FORBIDDEN;
            }

            $data = array();
            if(is_array($post)) {
                foreach($post as $k => $v) {        
    //dz uc-key
          if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {
             $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';
          }
    //end            
                    $data['findpattern'][$k] = $v['findpattern'];
                    $data['replace'][$k] = $v['replacement'];
                }
            }

    function updateapps($get, $post) {
            global $_G;

            if(!API_UPDATEAPPS) {
                return API_RETURN_FORBIDDEN;
            }
                    
    //$UC_API = $post['UC_API'];
    //dz uc-key
            $UC_API = '';
            if($post['UC_API']) {
                $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
                unset($post['UC_API']);
            }
    //end
            $cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';

    修改兩處!

    2016-08-22 17:30:37
    赞同 展开评论 打赏
  • 回 1楼51干警网的帖子
    一键修复需要购买的吧
    如果是免费的就没有一键修复的啊
    2016-08-22 13:31:15
    赞同 展开评论 打赏
  • 阿里云论坛版主,QQ 1978638808
    云盾一键修复就好。

    -------------------------

    回 2楼(熊纪元) 的帖子
    嗯。却是需要付费。

    -------------------------

    回 9楼(sai3721) 的帖子
    这个貌似是每日定时检测的吧。

    -------------------------

    回 12楼(sai3721) 的帖子
    介个,我帮你反馈给管理看看。
    2016-08-22 09:17:14
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载