如何修复网站漏洞Discuz被挂马 快照被劫持跳转该如何处理

Discuz 3.4是目前discuz论坛的最新版本,也是继X3.2、X3.3来,最稳定的社区论坛系统。目前官方已经停止对老版本的补丁更新与升级,直接在X3.4上更新了,最近我们SINE安全在对其安全检测的时候,发现网站漏洞,该漏洞是由于用户登录论坛的时候调用的微信接口,导致可以进行任意登录,甚至可以登录到管理员的账号里去。

关于Discuz漏洞详情

漏洞的产生是在plugin文件夹下的wechat目录里的wechat.inc.php代码中的220-240行的代码里,代码如下:

31af5176793f42f7afa3a0e30d82a6bd.png

我们可以看到代码里的逻辑功能设计师如何,首先会从会员的这个数据表里进行查询微信接口的ID,是否在会员表里有相对应,并绑定好的会员账号,如果有数据库返回数据给前端。然后再进行下一步,从common这个表里进行获取会员uID值的用户ID,以及用户的所有信息。

根据discuz的设计逻辑,我们可以看出只要知道了用户使用微信接口openid就能登录到其他用户的账户里面去,我们仔细的看下discuz关于微信API接口这个文档,openid这个值是不变的,只有用户将微信号绑定到论坛里,才能从公众号中获取到这个openid值,正常的请求下是获取不到这个值的。

92a604ced6d045b58b3d9a609b05b1b7.jpeg

那么我们就可以伪造参数对其进行登录尝试,安全测试看下是否会获取到其他人的openid值来,我们用id为空的一个用户进行登录,发现可以登录但是并没有绑定任何的论坛账号,但注册了一个新的账户到了论坛里。从整个的逻辑代码中,我们发现了漏洞,可以解除任意ID绑定的微信,然后我们再来登录openid为空的账号,我们发现可以登录任何会员的账户了。截图如下:

9bc7e5e7f806437795b23767f8c4783a.gif

如果管理员的账户绑定了微信登录,那我们就可以解除他绑定的ID,我们用空ID登录就可以进到管理员账号里了。关于discuz网站漏洞的修复,建议网站的管理者对代码进行删除,在plugin/wechat/wechat.inc.php里的230行到247行代码全部注释掉即可。网站漏洞的修复,可以对比程序系统的版本进行升级,也可以找程序员进行修复,如果是你自己写的网站熟悉还好,不是自己写的,建议找专业的网站安全公司来处理解决网站被篡改的问题,像Sinesafe,绿盟那些专门做网站安全防护的安全服务商来帮忙。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/691543

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。