DTStack Taier 1.4.0 listNames sql注入分析(CVE-2024-41579)
通告 漏洞分析 根据参考文献,很幸运发现了payload 通过payload可以知道漏洞触发接口是listNames触发参数是jobName 在项目的Model层和xml文件查询jobName 在Java中sql拼接大致分为两种$和# $:预编译拼接sql语句 :直接拼接sql语句 项目判断是Spring框架,寻找接口到Controller层 根据图上所示,Controlle层直接post
通告

漏洞分析
根据参考文献,很幸运发现了payload

通过payload可以知道漏洞触发接口是listNames触发参数是jobName
在项目的Model层和xml文件查询jobName

在Java中sql拼接大致分为两种$和#
$:预编译拼接sql语句
:直接拼接sql语句
项目判断是Spring框架,寻找接口到Controller层

根据图上所示,Controlle层直接post获取jobName请求参数
调用连ConsoleController.listNames->ConsoleService.listNames->ScheduleJobCacheMapper->listNames
东施效颦-漏洞挖掘
通过上述分析,寻找一个新的注入点
ScheduleJobCacheMapper.xml发现getOne接口使用了#号作为占位符

逆向追踪对应的Model层

继续追踪发现jobId是通过Controller传递的

继续分析Controller代码,发现jobId通过请求直接获取的

那么挖掘的sql注入:
请求方式:POST请求
请求接口:/taier/api/console/jobStick
注入参数:jobId
在分析漏洞的过程中,模仿大佬的行为,发现了一个新的sql注入点^ _ ^。