安全矩阵

 找回密码
 立即注册
搜索
查看: 2512|回复: 0

CVE-2021-26084-Confluence命令执行 全版本内存马注入

[复制链接]

249

主题

299

帖子

1391

积分

金牌会员

Rank: 6Rank: 6

积分
1391
发表于 2022-3-27 08:20:12 | 显示全部楼层 |阅读模式
原文链接:CVE-2021-26084-Confluence命令执行 全版本内存马注入

高版本场景说明
在某些产品的JDK版本中,未来会逐渐出现JDK9JDK11等高版本,这是编程语言发展的必经之路,新的特性必然带来新的攻防场景,比如高版本的场景中逐渐限制了下面Demo的应用
场景1
JDK8的时代,攻击者会经常使用当前线程的contextClassLoader去反射调用defineClass方法,然而JDK11会抛出警告,有的场景还会直接不让调用。
默认情况下JDK 9不允许访问封装的包以及深度反射其他模块(包括平台模块)中的代码 。
为了便于将基于类路径的应用程序迁移到Java 9,在对平台模块中的类应用深度反射时,或者使用反射来访问非导出包中的类型时,"JVM默认显示警告",而后续的尝试将不会产生额外的错误或警告。如果想要进一步调查问题的原因,可以使用——illegal-access 命令行标志的不同设置来调整行为:
——illegal-access=permit 默认行为。允许对封装类型进行非法访问。当第一次尝试通过反射进行非法访问时会生成一个警告
——illegal-access=warn  permit一样,但每次非法访问尝试时都会产生错误
——illegal-access=debug  同时显示非法访问尝试的堆栈跟踪。
——illegal-access=deny  不允许非法的访问尝试。这将是未来的默认行为
0x01 unsafe的用法
如果想要绕过上述高版本的限制,那么需要在启动JVM进程的时候加入以下参数:
java ——illegal-access=permit exec.class
显然,这种解决方案不能满足实际攻防场景的应用。
unsafe的使用是可以绕过代码层面的限制的,直接在内存层面操作,实现的Demo有两种
unsafe
如果是JDK9-11的话如何注入内存马呢?
unsafe类中有一个方法是defineAnonymousClass,在defineAnonymousClass中再使用defineClass是不会被拦截的。
JDK11版本下注入tomcat内存马为例,JSPDemo如下
冰蝎连接:
confluenceMem
CVE-2021-26084,该漏洞产生的原因是OGNL表达式注入,基于已经给出的POCEXP,最后的基本Demo如下:
执行代码的是靠Jscript触发的,那么问题就来了,如何能让不同的JDK版本都能够顺畅地执行Jscript代码,经过向feihong师傅请教和不断地fuzz,得到的结果如下:
解决JDK7JDK8的内存马注入问题主要是defineClass参数的接收问题,这里需要稍微做下转变,JDK7的时候需要先进行Integer类型强转,JDK8Demo则如下,JDK8是不需要进行强转的。
到了JDK9以上的时候,就需要用到高版本的unsafe方法,这里给出的Demo如下:
至于注入内存马的问题,建议参考以下两篇文章:
https://xz.aliyun.com/t/9914
https://mp.weixin.qq.com/s/kfN6uU3A-jR72fyK8epnGw
confluence是以tomcat启动的,直接修改catalina.bat文件的debug配置即可:
confluence对应版本的JDKtomcat信息可以参考官网信息:
https://confluence.atlassian.com/doc/bundled-tomcat-and-java-versions-1005786018.html
参考文章
https://xz.aliyun.com/t/9914
https://mp.weixin.qq.com/s/kfN6uU3A-jR72fyK8epnGw
https://paper.seebug.org/1785
https://www.cnblogs.com/nice0e3/p/14102892.html
https://docs.oracle.com/en/java/javase/16/migrate/migrating-jdk-8-later-jdk-releases.html#GUID-7744EF96-5899-4FB2-B34E-86D49B2E89B6
https://bugs.openjdk.java.net/browse/JDK-8266760
https://confluence.atlassian.com/doc/bundled-tomcat-and-java-versions-1005786018.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-24 15:03 , Processed in 0.014208 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表