用友 U8Cloud Actionservlet sQL注入漏洞分析

U8cloud系统MeasureQueryFrameAction接口存在SQL注入漏洞,攻击者未经授权可以访问数据库中的数据,从而盗取用户数据,造成用户信息泄露。

一、漏洞简介

攻击者未经授权可以访问数据库中的数据,从而盗取用户数据,造成用户信息泄露。

image-20240807162238973.png

二、影响版本

1.0,2.0,2.1,2.3,2.5,2.6,2.65,2.7,3.0,3.1,3.2,3.5,3.6,3.6sp,5.0,5.0sp

三、漏洞原理分析

漏洞位于MeasureQueryFrameAction接口处,该文件位于nc.ui.iufo.query.measurequery.MeasureQueryFrameAction处。这个接口通过iufo/com.ufida.web.action.ActionServlet接口进行调用,所以会有人误以为是ActionServlet接口的漏洞。调用类之后,加载类的execute方法,后边再传递该函数需要的参数,完成功能函数调用。这是用友自己设定的一种调用方式

image-20240807163227506.png

调用方法。

image-20240807163327585.png

这部分就不细说了。接着来到漏洞所在的接口。

该接口有两个函数,都是同一个参数,存在sql注入。doRefresh方法,直接来到这个函数。从请求中获取TableSelectedID参数赋值给select变量。最终调用nc.ui.iufo.query.measurequery.MeasureQueryBO_Client#loadQueryForRefresh

image-20240807172510770.png

通过一步步跟进,最终来到nc.bs.iufo.query.measurequery.MeasureQueryDMO#loadQueryById(java.lang.String[])函数。该函数接收的参数就是传入的参数,直接拼接进了sql语句。

image-20240807172846901.png

四、环境搭建

五、漏洞复现

构造payload:/service/~iufo/com.ufida.web.action.ActionServlet?action=nc.ui.iufo.query.measurequery.MeasureQueryFrameAction&method=doRefresh&TableSelectedID=1%27);WAITFOR+DELAY+%270:0:5%27--

image-20240807173041713.png

复现结果

image-20240807173224824.png

六、总结

该漏洞主要是未对用户传入的参数进行任何过滤,导致SQL注入漏洞。官方在7月17发布了补丁,这里验证传入参数是否包含单引号'

image-20240807170120673.png

  • 发表于 2024-08-21 09:36:09
  • 阅读 ( 4588 )
  • 分类:Web应用

0 条评论

请先 登录 后评论
la0gke
la0gke

9 篇文章

站长统计