当前位置: 首页 > article >正文

SQL 注入(文件读取)

使用 Grafana(一种开源数据可视化和监控解决方案,可推动明智的决策、提高系统性能并简化故障排除)通过漂亮的仪表板轻松收集、关联和可视化数据。Grafana 实验性 SQL 表达式功能中的一个 DuckDB SQL 注入漏洞。任何经过身份验证的用户都可以通过修改 Grafana 仪表板中的表达式执行任意 DuckDB SQL 查询。
描述
使用 Grafana(一种开源数据可视化和监控解决方案,可推动明智的决策、提高系统性能并简化故障排除)通过漂亮的仪表板轻松收集、关联和可视化数据。

CVE-2024-9264是 Grafana 实验性 SQL 表达式功能中的一个 DuckDB SQL 注入漏洞。任何经过身份验证的用户都可以通过修改 Grafana 仪表板中的表达式执行任意 DuckDB SQL 查询。

漏洞分析
根据描述,得知漏洞点在仪表盘创建处。这里可以输入表达式,执行一些函数命令。
在这里插入图片描述
先从代码分析一下。

通过抓包,获取该功能路径如下:

http://localhost:3000/api/ds/query?ds_type=expr&expression=true&requestId=Q121

在这里插入图片描述
在框中输入aaa,查询数据如下

在这里插入图片描述
可以直接在GitHub下载源码https://github.com/grafana/grafana/releases,该系统通过go进行编写,找到项目的路由定义处,找到该接口对应的路由。

在这里插入图片描述
这个路由处理器是用来处理 /ds/query 路径的 POST 请求,具体执行几个操作,例如:

1.requestmeta.SetSLOGroup:为请求设置服务级别目标 (SLO),在这里是 SLOGroupHighSlow,意味着这个请求可能对服务性能有较高要求,但可能有一定的延迟。
2.authorize:对请求进行授权,使用 ac.EvalPermission 来评估权限,这里似乎是在检查是否有 datasources.ActionQuery 的权限。
3.hs.getDSQueryEndpoint():这是路由的实际处理函数,会处理发到 /ds/query 路由的请求。
接着找到getDSQueryEndpoint函数,处理逻辑并不在这个函数,还需要进一步跟踪。
在这里插入图片描述
当有表达式时,handleExpressions 处理 POST /api/ds/query。
在这里插入图片描述
最终sql表达式在SQLCommand.Execute中执行
在这里插入图片描述
这里整个过程中没有进行任何过滤,可以执行任意的duckDB命令,可执行的命令参考官网:https://duckdb.org/docs/sql/functions/utility
在这里插入图片描述
漏洞复现
执行payload: SELECT content FROM read_blob(‘/etc/passwd’)

在这里插入图片描述
总结
官方已经以进行了修复,直接把duckDB功能给去掉了。非常的简单粗暴。
在这里插入图片描述


http://www.kler.cn/a/385502.html

相关文章:

  • Linux入门:环境变量与进程地址空间
  • Linux系统的网络设置
  • 揭开 gRPC、RPC 、TCP和UDP 的通信奥秘
  • c和cpp的异常处理
  • Python 实现阿里滑块全攻略
  • 【vs-code】离线安装python等插件历史版本的方法
  • UE5.4 PCG 复制关卡实例
  • 线程级耗时统计工具类TimeWatcher
  • 深度学习-图像评分实验(TensorFlow框架运用、读取处理图片、模型建构)
  • 【数据结构】快慢指针探秘:理解链表与数组中的环结构
  • Leecode热题100-78.子集
  • 【AIGC探索】AI实现PPT生产全流程
  • 《Python使用sqlite3数据库》
  • Pytorch基本语法
  • 微软域名邮箱:如何设置管理烽火域名邮箱?
  • .NET6中WPF项目添加System.Windows.Forms引用
  • oracle数据坏块处理(三)-数据抽取插入到新表中
  • webWorker基本用法
  • 容器化技术入门:Docker详解
  • 微服务相关问题
  • Redis - Zset 有序集合
  • 停止的 Docker 容器占用的内存和其他资源
  • python3的基本数据类型: 元组的其他操作
  • 华宇TAS应用中间件入围鲲鹏应用创新大赛2024全国总决赛
  • 案例精选 | 河北省某检察院安全运营中异构日志数据融合的实践探索
  • FreeSWITCH 验证