Discuz 3.4 网站漏洞检测与安全分析



          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,绿盟那些

专门做网站安全防护的安全
服务商来帮忙。
分享: