Smartbi 身份认证绕过漏洞

内置账号密码登录

因为自己搭建的环境存在一些问题,可能是版本过高的原因,(奇奇怪怪的问题,用户没有权限),所以目前仅仅做概念性验证,对漏洞的原理进行分析

在未登录的情况下访问接口 /smartbi/vision/RMIServlet

图片

image

图片

image

我们可以比较明显的看到对应的处理类 CheckIsLoggedFilter

smartbi.freequery.filter.CheckIsLoggedFilter#doFilter

图片

image

从这里开始可能就是要进行比较详细的分析,首先是判断请求的路径是不是/vision/RMIServlet 是的话进入这个分支,然后判断请求体中是不是有以 windowUnloading 开头的字符串,这个跟另一种绕过方式有关,这里先不做分析

图片

image

接下来依次判断是否有通过 POST 或者 GET 方法来获取参数 className methodName 如果没有的话,就对参数 encode 进行解码,对相关参数进行赋值

图片

image

这里有一个判断,对类和方法进行鉴权操作,如果是 true 就会继续判断是否登录,只需要满足 FilterUtil.needToCheck 返回 false 就可以

smartbi.util.FilterUtil#needToCheck

图片

image

我们就注意到从数据库登录的操作也是不需要鉴权就可以进行访问的

smartbi.usermanager.UserManagerModule

图片

image

smartbi.usermanager.UserManagerModule#loginFromDB

图片

image

smartbi.usermanager.SecurityServiceImpl#loginFromDB

图片

image

这里直接比较的是从数据库中查询出的密码,所以我们就可以直接利用内置的账号和 MD5密码登录

图片

image

图片

image

admin 也是可以登录成功的

图片

image

为什么不用原本的登录模式登录,首先原本的登录模式登录是不知道对应的账号和密码的其次我们再对原本的登录逻辑进行简单的分析

smartbi.usermanager.UserManagerModule#clickLogin

图片

image

smartbi.usermanager.UserManagerModule#login

图片

image

smartbi.usermanager.SecurityServiceImpl#login

图片

image

主要的处理登录逻辑在这一部分

smartbi.usermanager.SecurityServiceImpl#loginDB

图片

image

smartbi.usermanager.UserBO#isPasswordValidate

图片

image

这里在进行比较的时候 首先 String passwordInLib = this.user.getPassword(); 是从数据库中查找用户的密码,根据用户的密码开头的第一位字符,来进行处理比较

图片

image

我们已经知道数据库中对应的值是 0a 但是并没有任何一个值对应的 MD5 的值是a 所以正常无法登录内置用户

漏洞修复

http://192.168.222.133:18080/smartbi/vision/sysmonitor.jsp

图片

image

图片

image

同样的 POC 已经无法利用成功了,我们关注一下修复的代码内容

图片

image

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SmartBI 智能商业智能系统是一个企业级的数据分析与决策支持平台。虽然SmartBI是一个功能强大、操作便捷的软件,但是在实际使用中可能存在一些漏洞。 首先,SmartBI可能存在数据泄露的漏洞。由于SmartBI涉及到企业的敏感数据以及商业机密,如果未能完善保护数据的安全性,可能导致数据被未授权的用户访问和窃取。 其次,SmartBI的系统架构可能存在漏洞,使得黑客可以通过攻击进行非法访问。如果系统安全管理不到位,黑客可能得以入侵系统,导致数据丢失或遭到破坏。 此外,SmartBI可能存在权限控制不完善的漏洞。如果没有正确设置用户权限,可能导致未经授权的用户获取到敏感数据,对数据进行篡改或破坏。 再者,SmartBI可能存在其他漏洞,例如软件的稳定性问题,导致系统崩溃或无法正常使用,或者在数据处理中可能存在一些计算逻辑的错误,导致分析和决策产生误导。 为了解决这些漏洞SmartBI的开发者和用户需要采取一系列措施。首先,确保系统安全管理措施完善,包括加强用户身份验证、建立完备的权限控制机制等。其次,加强数据加密与备份,确保数据安全性和可恢复性。此外,定期审计系统漏洞和进行安全测试,以及及时更新和升级系统以修复已知漏洞。最后,建立灾难恢复机制,以应对可能的系统故障和数据丢失情况。 总之,SmartBI作为一款强大的商业智能系统,在使用中确实可能存在一些漏洞,但是只要合理采取安全措施,可以最大程度地减少漏洞的风险,并确保系统的安全和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值