如何修复网站漏洞Discuz被挂马 快照被劫持跳转该如何处理
Discuz 3.4是目前discuz论坛的最新版本,也是继X3.2、X3.3来,最稳定的社区论坛系统。目前官方已经停止对老版本的补丁更新与升级,直接在X3.4上更新了,最近我们SINE安全在对其安全检测的时候,发现网站漏洞,该漏洞是由于用户登录论坛的时候调用的微信接口,导致可以进行任意登录,甚至可以登录到管理员的账号里去。
关于Discuz漏洞详情
漏洞的产生是在plugin文件夹下的wechat目录里的wechat.inc.php代码中的220-240行的代码里,代码如下:
我们可以看到代码里的逻辑功能设计师如何,首先会从会员的这个数据表里进行查询微信接口的ID,是否在会员表里有相对应,并绑定好的会员账号,如果有数据库返回数据给前端。然后再进行下一步,从common这个表里进行获取会员uID值的用户ID,以及用户的所有信息。
根据discuz的设计逻辑,我们可以看出只要知道了用户使用微信接口openid就能登录到其他用户的账户里面去,我们仔细的看下discuz关于微信API接口这个文档,openid这个值是不变的,只有用户将微信号绑定到论坛里,才能从公众号中获取到这个openid值,正常的请求下是获取不到这个值的。
那么我们就可以伪造参数对其进行登录尝试,安全测试看下是否会获取到其他人的openid值来,我们用id为空的一个用户进行登录,发现可以登录但是并没有绑定任何的论坛账号,但注册了一个新的账户到了论坛里。从整个的逻辑代码中,我们发现了漏洞,可以解除任意ID绑定的微信,然后我们再来登录openid为空的账号,我们发现可以登录任何会员的账户了。截图如下:
如果管理员的账户绑定了微信登录,那我们就可以解除他绑定的ID,我们用空ID登录就可以进到管理员账号里了。关于discuz网站漏洞的修复,建议网站的管理者对代码进行删除,在plugin/wechat/wechat.inc.php里的230行到247行代码全部注释掉即可。网站漏洞的修复,可以对比程序系统的版本进行升级,也可以找程序员进行修复,如果是你自己写的网站熟悉还好,不是自己写的,建议找专业的网站安全公司来处理解决网站被篡改的问题,像Sinesafe,绿盟那些专门做网站安全防护的安全服务商来帮忙。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ArcEngine 创建工作空间工厂对象IWorkSpaceFactory的两种方式
ArcEngine 创建工作空间工厂对象IWorkSpaceFactory有两种方式: 第一种使用ae的工厂方法: IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass(); IFeatureWorkspace pWorkSpace = pWsFactory.OpenFromFile(path, 0) as IFeatureWorkspace; 使用这种方法有时候出现异常:无法将类型“System._ComObject”对象强制转换为ShapefileWorkspaceFactoryClass,这异常不只是针对ShapefileWorkspaceFactoryClass,还会出现在AccessWorkspaceFactoryClass,FileGDBWorkspaceFactoryClass和SdeWorkspaceFactoryClass等类型中,解决这个异常可以使用下面第二种方法创建。 第二种使用C#的动态创建类型的方法: Type typeObj=System.Type .GetType ("esriW...
- 下一篇
ES10特性详解
摘要: 最新的JS特性。 原文:ES10 特性的完整指南 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 ES10 还只是一个草案。但是除了 Object.fromEntries 之外,Chrome 的大多数功能都已经实现了,为什么不早点开始探索呢?当所有浏览器都开始支持它时,你将走在前面,这只是时间问题。 在新的语言特性方面,ES10 不如 ES6 重要,但它确实添加了一些有趣的特性(其中一些功能目前还无法在浏览器中工作: 2019/02/21) 在 ES6 中,箭头函数无疑是最受欢迎的新特性,在 ES10 中会是什么呢? String .matchAll() Dynamic import() Array .flat() .flatMap() Object .fromEntries() String .trimStart() .trimEnd() well-formed JSON.stringify() stable Array .sort() new Function .toString() Standardized globalThis object BigInt...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长