兔源码网 - 专注DZ模版分享、DZ插件分享!

 找回密码
 立即注册

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 162|回复: 0
收起左侧

完美解决阿里云服务器出现的漏洞,在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑

[复制链接]
  • TA的每日心情
    萌哒
    6 天前
  • 1266

    主题

    1280

    帖子

    2395

    积分

    兔校长

    Rank: 9Rank: 9Rank: 9

    萝卜
    0 棵


    兔毛
    263 朵


    兔币
    14065 枚


    经验
    2395 点


    最佳新人管理/版主土豪装逼

    tuyuanma 发表于 2018-2-11 08:40:51 | 显示全部楼层 |阅读模式
    问题详情描述:
    在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。

    解决方法:
    打开/api/uc.php
    找到
    1.                 if(!API_UPDATEBADWORDS) {
    2.                         return API_RETURN_FORBIDDEN;
    3.                 }

    4.                 $data = array();
    5.                 if(is_array($post)) {
    6.                         foreach($post as $k => $v) {
    7.                                 if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {
    8.                                         $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';
    9.                                 }
    10.                                 $data['findpattern'][$k] = $v['findpattern'];
    11.                                 $data['replace'][$k] = $v['replacement'];
    12.                         }
    13.                 }
    复制代码
    修改为
    1. if(!API_UPDATEBADWORDS) {  
    2.     return API_RETURN_FORBIDDEN;  
    3. }  
    4. $data = array();  
    5. if(is_array($post)) {  
    6.     foreach($post as $k => $v) {         
    7.         //dz uc-key修改开始  
    8.         if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {  
    9.             $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';  
    10.         }  
    11.         //end  修改结束            
    12.         $data['findpattern'][$k] = $v['findpattern'];  
    13.         $data['replace'][$k] = $v['replacement'];  
    14.     }  
    15. }  
    复制代码
    第二处修改
    找到
    1.         function updateapps($get, $post) {
    2.                 global $_G;

    3.                 if(!API_UPDATEAPPS) {
    4.                         return API_RETURN_FORBIDDEN;
    5.                 }

    6.                 $UC_API = '';
    7.                 if($post['UC_API']) {
    8.                         $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
    9.                         unset($post['UC_API']);
    10.                 }

    11.                 $cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';
    复制代码
    修改为
    1. function updateapps($get, $post) {  
    2.     global $_G;  
    3.     if(!API_UPDATEAPPS) {  
    4.         return API_RETURN_FORBIDDEN;  
    5.     }   
    6.     //$UC_API = $post['UC_API'];  
    7.     //dz uc-key修改开始  
    8.     $UC_API = '';  
    9.     if($post['UC_API']) {  
    10.         $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);  
    11.         unset($post['UC_API']);  
    12.     }  
    13.     //end修改结束  
    14.     $cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';  
    复制代码
    第三处修改

    找到
    1. $configfile = preg_replace
    复制代码
    修改为
    1. $configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);   
    复制代码


    版权声明
    1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
    2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
    3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




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

    本版积分规则

    兔源码网 ( 赣ICP备17001544号 公网安备36112102000036号 )

    QQ交流群:493651246  GMT+8, 2018-5-21 19:05
    ←站长统计工具 查看密码:tuyuanma

    兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386

    © 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

         
    快速回复 返回顶部 返回列表