Smartbi v8.5 搭建&审计
文章介绍了SmartBI V8.5环境的搭建步骤,包括下载安装包、配置数据库、获取license及常见问题解决方法。 2025-8-30 04:3:32 Author: www.freebuf.com(查看原文) 阅读量:0 收藏

一、下载

通过网盘分享的文件:SmartBi-8.5环境.zip 链接: https://pan.baidu.com/s/1bFYYEI9-g84IeLG_HoZlxA提取码: hqb4

二、安装

1755706526_68a5f49ecce737779130b.png!small?1755706527795

用户名和公司名称随意

1755706534_68a5f4a60e32f0de81cb7.png!small?1755706534854

更改安装目录

1755706541_68a5f4ad55416f90ffc92.png!small?1755706542129

此处,不要选择“安装演示库”,否则会报“报表数量超过限制”的错误

1755706558_68a5f4beaa31ad1b4eeab.png!small?1755706559640

不选择“注册为Windows服务”,内存大小默认即可

1755706562_68a5f4c2d1d1719be8314.png!small?1755706564377

登录首页的密码

1755706568_68a5f4c82ebd726491f09.png!small?1755706569030

三、license获取

官网地址:https://www.smartbi.com.cn/

license申请地址:https://my.smartbi.com.cn/index/index/customerindex/form_id/3.html

这里第一次进入需要注册\登录:

1755706594_68a5f4e2f23ad1c90615d.png!small?1755706596095

之后便可以申请了,邮箱要填正确,之后会将 license 发到邮箱里

选择个人版

之后在邮箱里可以看到发的:Smartbi-License.xml

1755706623_68a5f4ff797d3f7614a23.png!small?1755706624665

获取 licence 后,将其放置在 E:\Smartbi\Tomcat\bin 文件夹 下

四、创建数据库

首先连接 Smartbi :

1755706693_68a5f545536092e4a4b58.png!small?1755706694350

(我搭建的时候,经常连接不上数据库,可以试试重启电脑)

创建 Smartbi 数据库:

第一步连接好之后,是没有 smartbi 数据库的,需要自己创建(特别强调)

1755706713_68a5f559c904ec1dd0dab.png!small?1755706714774

下面是 MySQL 的配置: database-name 在选择安装“演示数据库”时是: smartbidemo ;咋们没有选择,所以默认是: smartbi

E:\Smartbi\Tomcat\bin\smartbi-config.xml

1755706723_68a5f563bca2c78b250d9.png!small?1755706724810

四、解决浏览器版本误判

这一步可以看下面问题中的1、

五、启动程序

方法一:

E:\Smartbi\Tomcat\bin\startup.cmd

运行 startup.cmd ,启动服务器

方法二:

系统开始菜单中找到 Smartbi 的安装目录,单击启动Smartbi服务

1755706937_68a5f63977c5ce36bf2e0.png!small?1755706938536

没有报错的话,就是启动成功了, 若到这一步服务启动有错,重启电脑!!!

1755707123_68a5f6f33d9afea894d3f.png!small?1755707124061

六、配置程序

访问Smartbi:

首次访问,需输入密码,这里的密码随意,我的是 admin

1755707156_68a5f7141211abc87992c.png!small?1755707156933

接下来的配置按照图中所示即可:

1755707181_68a5f72da939b86a2cb20.png!small?1755707182940

七、进入主页

重启服务后,再次点击 访问Smartbi ,会进入下方页面:

http://localhost:18080/smartbi/vision/index.jsp

首次访问登录页:

1755707198_68a5f73e75d883cec319d.png!small?1755707199324

此处的旧密码是 manager ,之后自行修改一个新密码:

1755707204_68a5f744d922e0a751e85.png!small?1755707205776

这是之后访问登录页:登录系统:

1755707214_68a5f74edc941b77ec1f3.png!small?1755707215892

至此,Smartbi v8.5 环境搭建完成。

所遇问题

(按照上述方法安装后应该 不会有下列问题):

1、浏览器版本被错误检测

参考:https://www.xiaoheiwoo.com/windows-11-internet-explorer/

1755707244_68a5f76c283cb4c796e9b.png!small?1755707245001

方法一:

从“管理加载项”窗口打开 Internet Explorer

IE中是可以通过 Internet属性 窗口,对浏览器进行功能设置的。

虽然 Win11默认找不到 IE的入口,但是 Internet属性 程序依然可以正常运行,我们可以点击其中的 管 理加载项 功能,打开 IE 浏览器。

步骤:

1.首先,按 Win + R 打开运行窗口

2.接下来,在运行命令框中输入 inetcpl.cpl

3.单击 确定 进入 Internet 属性窗口

4.选择 程序 选项卡,点击 管理加载项 按钮\
1755707266_68a5f78249c2d2a4beb44.png!small?1755707267213

5.然后,点击窗口底部 了解有关工具栏和扩展的详细信息

1755707316_68a5f7b42b0c77e139580.png!small?1755707317186

6.出现ie

1755707343_68a5f7cfd961d28205434.png!small?1755707344833

方法二:注释掉判断语句

进入 E:\Smartbi\Tomcat\webapps\smartbi\vision

找到文件 config.jsp

将判断部分注释掉

1755707365_68a5f7e52383567f75121.png!small?1755707366339

2、报表数量超过限制

1755706558_68a5f4beaa31ad1b4eeab.png!small

报这个问题是由于安装时选择了安装 演示数据库 ,不安装即可。

3、配置完成后无法正确访问到登陆页面,一直重定向到配 置页

问题:

如图,知识库连接成功,license上传成功。重启后访问 http://localhost:18080/smartbi仍然跳转到配 置页面 http://localhost:18080/smartbi/vision/config.jsp

1755707425_68a5f8219b9540a948422.png!small?1755707426524

1755707440_68a5f8303ba9f6430e929.png!small?1755707441169

1755707448_68a5f83826f0cfa720c72.png!small?1755707449283

配置完成后再次登录,显示服务启动不成功:

1755707458_68a5f842b075d8033296e.png!small?1755707459623

数据库正常连接:

1755707471_68a5f84f902f1a19effef.png!small?1755707472628

正常访问跳转的页面:

http://localhost:18080/smartbi/vision/index.jsp

http://localhost:18080/smartbi/vision

http://localhost:18080/smartbi

都会重定向到 http://localhost:18080/smartbi/vision/config.jsp

修改:

//var chromeVer = ua.substr(chrome + 7,2);
->
var match = ua.match(/chrome\/(\d+)/i);
var chromeVer = match ? parseInt(match[1]) : 0;

能正确识别浏览器版本,但没什么用

1755707508_68a5f874b6af60a691382.png!small?1755707509677

可访问不跳转的页面:

http://localhost:18080/smartbi/vision/license.jsp

1755707533_68a5f88d76774c35198e7.png!small?1755707534579

1755707543_68a5f897b17794191082a.png!small?1755707544613

http://localhost:18080/smartbi/vision/login.jsp

但是会报错: 找不到是什么错误 导出日志会失败

1755707554_68a5f8a2e7bdbba121644.png!small?1755707555876

介绍

SmartBI 是广州思迈特软件有限公司旗下的商业智能 BI 和数据分析品牌,是一款企业级大数据分析软件,能快速挖掘企业数据价值。集合数据可视化探索性分析自助式仪表盘以及一站式 ABI 平台智慧数据运营平台电子表格软件等等

版本:SmartBi V8.5 JDK 8

传参方式(直接传输,RMIServlet加密)

RMIServlet加密

先抓包,抓到的get,放行之后会出现post(smartbi程调用入口,是SmartBI 用自己的协议封装 HTTP 请求,把请求体加密后发给 RMIServlet)

POST /smartbi/vision/RMIServlet HTTP/1.1
Host: 192.168.1.8:18080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
If-Modified-Since: 0
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 69
Origin: http://192.168.1.8:18080
Connection: keep-alive
Referer: http://192.168.1.8:18080/smartbi/vision/index.jsp
Cookie: JSESSIONID=FA004C807237DA15E8841C4E8D2C02BF
Priority: u=0

encode=zDp4Wp4gRip+iIpiGZp4DRw6+/JV/uuu71'f11fuu/u7uu/NOuu/NO1m/uu/JT
  1. 追踪,RMIServlet加密的解密流程在 TraceFilter 的 doFilter ⽅法

    (用 F12→ Network → 点击这个 RMIServlet 请求 → 在 Initiator调用栈里看哪个 JS 文件生成了encode

    Smartbi\Tomcat\bin\exts-smartbi\smartbiExtension4478727347500549277.tmp\META-INF\classes\smartbix\smartbi\filter\SmartbiXTraceFilter.class

    public class SmartbiXTraceFilter extends TraceFilter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    boolean hasStartup = false;
    if (FreeQueryModule.getInstance() != null && FreeQueryModule.getInstance().getFramework() != null) {
    hasStartup = FreeQueryModule.getInstance().getFramework().isServerStartupSucceed();
    }

    if (request instanceof HttpServletRequest && response instanceof HttpServletResponse && hasStartup) {
    if (SessionLogService.getInstance().getMlogs().size() == 0 && SessionLogService.getInstance().getUlogs().size() == 0) {
    chain.doFilter(request, response);
    } else {
    boolean need2Log = true;
    HttpServletRequest httpRequest = (HttpServletRequest)request;
    httpRequest.setCharacterEncoding("UTF-8");
    HttpSession session = httpRequest.getSession(false);
    if (session == null) {
    need2Log

文章来源: https://www.freebuf.com/articles/web/446600.html
如有侵权请联系:admin#unsafe.sh