瑞友天翼应用虚拟化系统多个SQLi2RCE漏洞
0x00 漏洞简介瑞友天翼应用虚拟化系统是西安瑞友信息技术资讯有限公司研发的具有自主知识产权,基于服务器计算(Server-based Computing)架构的应用虚拟化平台。它将用户各种应用软件(ERP/OA/CRM 等)集中部署在瑞友天翼服务器(群)上,客户端通过 WEB 即可快速安全的访问经服务器上授权的应用软件,实现集中应用、远程接入、协同办公等,从而为用户打造集中、便捷、安全、高效的虚拟化支撑平台。
瑞友天翼应用虚拟化系统存在多个 SQL 注入漏洞,攻击者可以通过 SQL 漏洞写入任意文件,进而达到执行任意代码。
0x01 影响版本多个漏洞,以下前四个漏洞不影响目前最新 7.0.3.1 版本,最后一个漏洞影响 7.0.3.1 版本。
/Index/dologin/name
5.x <= version < 7.0.3.1
/Agent/GetBSAppUrl/AppID
5.x <= version < 7.0.3.1
RAPAgent.XGI
5.x <= version < ...
泛微e-cology9 browser.jsp SQL注入漏洞分析
引子2023 年 02 月 23 日,微步发布了一个关于泛微 e-cology9 SQL 注入的漏洞通告。如下图所示,根据其说明,受影响的版本范围是<=10.55 版本。另外,他们还提到该漏洞无权限要求,并不是后台洞。
补丁包对比E-COLOGY 安全补丁下载网址如下:
https://www.weaver.com.cn/cs/securityDownload.html?src=cn
通过如下两个链接,下载该次漏洞的以及上一个版本的补丁包:
v10.55:https://www.weaver.com.cn/cs/package/Ecology_security_20221014_v10.55.zip
v10.56:https://www.weaver.com.cn/cs/package/Ecology_security_20230213_v10.56.zip
将两个补丁压缩包分别解压,然后使用 IDEA 工具对比差异。
这里对比看了很久,但是却没有看出有价值的内容。
嗯?先了解下web.xml文件中的内容。
在开头存在一个SecurityFilter的过滤器,Se ...
Apache Shiro各版本反序列化漏洞利用
1.0.0-incubating ≤ shiro ≤ 1.2.4这个范围直接就是 Shiro-550 漏洞的影响范围,可利用 CB1 反序列化链配合默认密钥直接打,这是毫无疑问的。低版本 Shiro 中的 commons-beanutils 的版本较低,为 1.8.3,本地构造反序列化时,注意版本要一致。
1.2.5 ≤ shiro ≤ 1.3.2受 Shiro-550 漏洞的影响,在 1.2.4 之后的版本中,官方通过 generateNewKey 方法生成一个随机密钥来进行修复。
1setCipherKey(cipherService.generateNewKey().getEncoded());
同时,也允许开发者在 shiro.ini 配置文件中自定义设置密钥,不过在默认配置中,这个字段是被注释的,无法生效。
123# We need to set the cipherKey, if you want the rememberMe cookie to work after restarting or on multiple nodes.# YOU MUST SET THIS ...
利用Commons Collections攻击Shiro550
引子在上一篇《CVE-2016-4437 SHIRO-550 反序列化漏洞》文章中,由于默认 Shiro 中的 Commons Collections 是不完整的,所以只演示了利用 CommonsBeanutils1 链攻击 Shiro 应用。
现在假设应用中存在完整的 Commons Collections 组件(这种情况在实战环境中也是很常见的),在这种情况下又该如何进行攻击利用?
攻击尝试这里先以 3.2.1 版本的 Commons Collections 为例,我们首先在 Shiro 项目中通过 Maven 引入它的依赖。
123456<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections --><dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> ...
CVE-2016-4437 SHIRO-550反序列化漏洞
漏洞简介Apache Shiro 是一个强大且易于使用的 Java 安全框架,用于身份验证、授权、加密和会话管理等安全领域,它提供了一套全面的安全功能,包括身份认证、授权、加密和会话管理,可以轻松地集成到各种 Java 应用程序中。
Apache Shiro 自 0.9 版本开始设计了 RememberMe 的功能,该功能是一种身份认证机制,允许用户在登录后长时间内保持登录状态,即使关闭浏览器或注销账户后再次访问时仍然保持登录状态。当未手动为 RememberMe 功能配置密钥时,攻击者可以通过发送特定参数的请求对 Shiro 执行任意代码或绕过预期的访问限制。
影响范围该漏洞影响 1.2.5 以前的版本,但受后续版本的修复方式所限,如果密钥被泄漏,攻击者依旧能够造成任意代码执行或绕过访问限制。
环境搭建从 Shiro 的 GitHub 仓库克隆下来,并切换至 shiro-root-1.2.4 分支。
12git clone https://github.com/apache/shiro && cd shiro/git checkout shiro-root-1.2.4 ...
Java反序列化漏洞之CommonsBeanutils1链
前言在上一篇文章《Java 中动态加载字节码的几种方法》中,已对 CommonsBeanutils1 做了一点点铺垫。一言以蔽之,上文中所提到的 TemplatesImpl#getOutputProperties 即为 CommonsBeanutils1 中的 Sink,此部分内容即为前置知识,若有疑惑请回顾上文,在本文中将不再赘述。
Commons BeanUtils 简介Commons BeanUtils 是 Apache 软件基金会提供的一个开源 Java 库,用于简化 JavaBean 的操作,适用于需要频繁操作 JavaBean 的场景。它提供了一组工具类和方法,对 JavaBean 进行常见操作,如属性的复制、属性的获取和设置、属性的类型转换等。通过使用 Commons BeanUtils,开发人员可以减少重复代码的编写,提高开发效率,同时提升代码的可维护性和可扩展性。
受影响版本范围Commons BeanUtils 最低影响 1.7.0,最高影响至 1.9.4;对于 Java 版本,若为 8 则通杀。
PropertyUtils#getPropertyorg.apach ...
Java中动态加载字节码的几种方法
Java 类加载Java 程序在运行前,Java 虚拟机会将 Java 源代码编译成字节码(即.class 文件),字节码是编译器生成的一种中间形式的代码,它是 Java 源代码的编译结果,并非可直接执行的机器代码。
当 Java 程序被执行时,Java 虚拟机负责将字节码加载到内存中并执行,这就是类加载的过程,这个过程可以简单分为三个阶段,即加载、链接和初始化。加载阶段负责将类文件加载到内存中,链接阶段负责对字节码进行验证、准备和解析,而初始化阶段则负责执行类的初始化器,准备类被使用。
以如下 HelloWorld Java 程序作为示例。
12345public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}
若要运行此程序,首先需使用 javac 命令将这个 Java 程序编译出字节码,可使用 javap 命令反汇编 class 文件以查看字节码 ...
Java反序列化漏洞之CommonsCollections6链
背景在前面关于 CommonsCollections1 链的两篇文章中,都提到了该链的利用是需要 JDK 版本小于 8u71,这一限制会降低此链在实战中的利用率。
有一条常用链不受 JDK 版本的限制,即 CommonsCollections6 链(后续简称 CC6 链),CC6 与 CC1 相比,Kick-off 入口类发生了变化,还增加了一个TiedMapEntry中间 Gadget 链,后续的LazyMap中间 Gadget 链和 Sink 依旧没变,对于部分重复的内容,在本文将不再赘述,如果对此不够了解,建议从前两篇文章开始看起。
影响范围虽然 CC6 链不像 CC1 那样会受到 JDK 版本的约束,但对于 Commons Collections 的版本也是要求在 3.0 以上、3.2.2 以下,即大于等于 3.1 且小于等于 3.2.1。
前情回顾上一篇《Java 反序列化漏洞之 LazyMap 型 CC1 链》文章中,有对LazyMap中间 Gadget 链做详细分析,通过向LazyMap#decorate方法传入一个恶意的ChainedTransformer对象作为恶意的 ...
Java反序列化漏洞之LazyMap型CC1链
LazyMap 的由来在上一篇《Java 反序列化漏洞之 TransformedMap 型 CC1 链》文章中,提到了 2015 年 1 月加州 AppSec 安全会议上,Chris Frohoff 和 Gabe Lawrence 在演讲中就 CommonsCollections1 完整调用链做出了演示,其中所用到的中间 Gadget 链就是LazyMap类,在随后发布的 Ysoserial 工具中所包含的 CommonsCollections1 链也同样如此。
那么,本文将会详细分析LazyMap作为中间链的这种反序列化利用方式。当然,与TransformedMap作为中间 Gadget 链相比,kick-off 入口类与 sink 危害类都是相同的类,所以涉及重复的内容不会再赘述。不过,虽然 sink 类相同,但其中执行的方法却有所不同。
在此之前还需要了解一些前置知识,比如 Java 动态代理机制,当对 LazyMap 作为中间链的反序列化利用方式分析透彻了,对于后面学习其他 Gadget 链也是有帮助的,比如 CommonsCollections3、CommonsCollect ...
Java反序列化漏洞之TransformedMap型CC1链
CommonsCollections1 链简介Apache Commons Collections 介绍Apache Commons Collections 是 Apache Commons 项目中的一个子项目,它提供了一套丰富的 Java 集合类和实用工具,用于增强和扩展 Java 标准库中的集合框架。这个项目旨在填补标准 Java 集合框架中的一些缺失,并提供更多功能强大的集合类和工具,以便 Java 开发者能够更轻松地处理各种集合操作。
CommonsCollections1 链的两种不同利用方式2015 年 1 月,加州 AppSec 安全会议上,Chris Frohoff 和 Gabe Lawrence 发表《Marshalling Pickles》主题演讲,在演讲中就 CommonsCollections1 完整调用链做出了演示,其中所用到的中间 Gadget 链是LazyMap类,这在随后发布的知名反序列化工具 Ysoserial 中所包含的 CommonsCollections1 链(以下简称 CC1 链)也同样如此。
2015 年 10 月 28 日,Matthias ...