漏洞名称: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. linux默认shell类型转换,Linux中默认的shell如何切换为其他类型的shell
  2. python就业方向及工资-Python的就业的方向和前景
  3. HDOJ 1018(阶乘位数)
  4. J.U.C系列(六)ForkJoin的使用
  5. linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
  6. HELP! I’m an Object Factory!
  7. 华为荣耀20计算机,华为云电脑将停止服务/荣耀新机保护壳曝光/小米新机渲染图曝光...
  8. html5语义化编程,HTML5常用的语义化标签
  9. 英特尔服务器主板g41性能,什么叫优化好,英特尔G41集成显卡也能流畅运行
  10. 论文写作---Matlab求解偏导数
  11. 「解决方案」运维、能耗、网关整体解决方案
  12. PEANUT-WF模块开发-HslCommunicationEx
  13. 公文标题排版(样式修改)
  14. python音频频谱分析软件_SpectrumView(音频频谱分析软件)
  15. 自定义 UINavigationController
  16. IP地址和MAC 地址
  17. Java EE(进阶版)
  18. Interproscan linux版本详细安装教程及运行报错解决方案
  19. JAVA乐居租房网的设计与实现计算机毕业设计Mybatis+系统+数据库+调试部署
  20. 你的计算机无法访问网络设置,局域网无法访问其他计算机怎么办

热门文章

  1. MySQLdb._exceptions.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using passw
  2. 争取能让大家都能看懂的 DFA 算法
  3. linux内存回收(一)---kswapd回收
  4. python拆分字符串生成列表_关于python:如何将字符串拆分为列表?
  5. python文件查重工具,基于文件大小和md5/sha1值
  6. MATLAB画图-plot-线形、颜色、数据点形状的选择
  7. 比比网开源的一款头像制作小程序
  8. Vue和React的区别到底是什么?
  9. TiDB数据库HTAP概述
  10. 在C++中检测和转换字节序(ENDIAN)