漏洞名称:Discuz uc.key泄露导致代码注入漏洞
漏洞描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。
最近用某云服务器的朋友比较多,都来反馈~这个漏洞,现在把修复方案分享下吧

打开/api/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';

第三处修改 找到

$configfile = preg_replace

修改为

$configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);   

修改后,提交替换同名文件,官方最新版已经补了,如果不是最新版 按以上方式修改下

特别提示:修改文件前,请注意备份!

Discuz!uc.key泄露导致代码注入漏洞uc.php的解决方法相关推荐

  1. Hack The Box - Catch 利用let chat API查询信息,Cachet配置泄露漏洞获取ssh登录密码,apk代码注入漏洞利用获取root权限

    Hack The Box-Catch Hack The Box开始使用流程看这篇 文章目录 Hack The Box-Catch 整体思路 1.Nmap扫描 2.apk文件信息收集 3.lets ch ...

  2. Spring-Cloud-Gateway之代码注入漏洞及解决

    目录 1. 背景 2. 漏洞简介 3. 原理 3. 1Spring-Cloud-Gateway的原理 3.1.1 核心流程 3.1.2 流程说明 3.1.3 常见的 API 网关实现方案主要有以下 6 ...

  3. 导致命令注入漏洞的php函数,PHP安全-函数

    函数 在我写作本书的时候,http://www.gxlcms.com/列出了共3917个函数,其中包括一些类似函数的语法结构,在此我不准备把它们从函数中区分开来,而是把它作为函数看待. 由于函数数量很 ...

  4. Discuz 7.2 /faq.php SQL注入漏洞

    测试方法: 提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Discuz 7.2 /faq.php SQL注入漏洞 http://www.xxx.com/faq.php?actio ...

  5. 知名Node.js组件存在代码注入漏洞

    喜欢就关注我们吧! 日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞. 该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm ...

  6. Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法

    Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法 今天修改一个比较奇怪的bug: 在操作一个事件的时候,使用eventbus来监听事件,断点发现有时候是会执 ...

  7. 计算机蓝屏无法启动代码50,电脑蓝屏代码0x0000007b无法正常启动的解决方法

    电脑出现蓝屏是十分常见的故障之一,而在蓝屏的时候会提示蓝屏代码,不同的蓝屏代码代表不同的意义,让我们快速的了解电脑是什么问题.那么遇到电脑蓝屏代码0x0000007b怎么办?下面装机之家分享一下电脑蓝 ...

  8. 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法

    因修改/etc/sudoers权限导致sudo和su不能使用的解决方法 参考文章: (1)因修改/etc/sudoers权限导致sudo和su不能使用的解决方法 (2)https://www.cnbl ...

  9. ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法

    ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法 参考文章: (1)ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法 (2)ht ...

最新文章

  1. java如何确保单线程_java – 任何单线程程序如何成为有效的多线程程序?
  2. linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent【转】...
  3. 好的产品经理是怎样炼成的?
  4. java怎么获取固定的日期,如何获取一个指定时间的java.util.Date对象
  5. python编程-迭代器(类,方法,继承),函数,数据结构,
  6. 供给测结构性改革内容_智能包装结构,提高可测性
  7. qt linux opensource ,QT opensource embedded linux 编…
  8. (84)JTAG接口与格雷码特点-面试必问(八)(第17天)
  9. [Usaco2016 Dec]Counting Haybales
  10. High Availability--keepalived详解篇(三)之keepalive配置实例-http
  11. mysql的int11是指什么_MYSQL中的int(11)到底代表什么意思?
  12. 【Android实战】----Android Studio2的安装使用
  13. 区块链游戏的2018:曙光微现,路尚遥远
  14. 猫狗图像识别(卷积神经网络算法,TensorFlow安装)
  15. 求全排列(1) --- dfs 记录
  16. Unity3d 游戏特效制作实战教程 第二部
  17. 通过脚本自由设计游戏UI风格
  18. dpkg 依赖关系问题-仍未被配置
  19. 代码合乱了,git怎么强制覆盖分支?
  20. 2019运营商最新号码段正则表达式

热门文章

  1. linux /etc/security/login.cfg,AIX用户管理
  2. 【linux】shell编程 脚本语法
  3. dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
  4. stream流 lambda 练习
  5. 血氧仪电路方案开发--PCBA方案
  6. 数组的定义,一维数组,二维数组与变长数组
  7. 学号20189220余超 2018-2019-2 《密码与安全新技术专题》第一周作业
  8. 手机摄像头模组涉及的领域以及镜头的选择
  9. Adversarial Image Registration with Application for MR and TRUS Image Fusion
  10. IDEA离线安装Oracle数据库驱动包