手把手教你搭建Weblogic调试环境

admin 2024年5月13日01:52:18评论85 views字数 2799阅读9分19秒阅读模式

无论是漏洞挖掘还是漏洞复现,最让人痛苦的一件事莫过于搭建环境。特别是一些大型应用的调试环境搭建,可谓又复杂又难搞,而且几乎很难找到现成成体系的资料。为了避免大家在漏洞挖掘或者复现过程中浪费时间去自行搜索与探究试错。这里我将为大家详细整理一下在Weblogic漏洞挖掘与复现过程中最难搞的调试环境搭建。

Oracle的东西有个很恼火的问题,就是他的一些下载入口、文档入口、通告入口巨难找。

首先第一步,我们需要从Oracle官网下载最新版的Weblogic安装包。以下为下载地址:

https://www.oracle.com/cn/middleware/technologies/fusionmiddleware-downloads.html

手把手教你搭建Weblogic调试环境

我们直接下载通用下载其,下载后我们将得到一个压缩包,对压缩包解压将得到一个jar包,然后直接执行命令进行安装。注意使用管理员权限打开命令行,否则可能因为权限不够而失败。

java -jar fmw_14.1.1.0.0_wls_lite_generic.jar

这里需要说明的是,JDK的安装路径中不能有空格,否则在安装完成后启动配置向导会失败,也就是说JDK不能安装在Program Files (x86)Program Files目录下。另外Weblogic的一些漏洞是需要通过JNDI的方式利用的,而Oracle在JDK 1.7开始就对RMI与LDAP开始进行限制了,故使用的JDK版本不能太高,我这里使用的JDK版本是JDK 8U121,JDK的归档下载在

https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html

注意可能下载的版本与网页上标记的版本不一致,注意查看下载的文件名中真正的版本号,如果不是自己想要的,就找更低的版本下载就可以了。

在打开安装程序后会见到下面的状态

手把手教你搭建Weblogic调试环境

一直点击下一步到安装位置选项,选择一个空闲空间较大的磁盘进行安装,安装时注意路径中不要带中文与空格。

手把手教你搭建Weblogic调试环境

下一步到安装类型,默认即可

手把手教你搭建Weblogic调试环境

下一步到先决条件检查选项,安装程序会检查系统环境是否符合安装,如果使用较低版本的JDK可能会有警告,不用管继续下一步即可

手把手教你搭建Weblogic调试环境

到了安装概要界面,选择安装,等待系统安装完毕

手把手教你搭建Weblogic调试环境

当下一步按钮变成可点击状态后,点击下一步,切记不要点完成。

手把手教你搭建Weblogic调试环境

勾选自动启动配置向导复选框,点击完成。会弹出一个控制台,等待配置向导打开

手把手教你搭建Weblogic调试环境

打开后下一步到模板选项,勾选所有复选框点击下一步

手把手教你搭建Weblogic调试环境

管理员账户选项设置管理员账号与密码

手把手教你搭建Weblogic调试环境

高级配置选项,全部选中

手把手教你搭建Weblogic调试环境

继续到节点管理器选项,输入前面输入的用户名密码,继续下一步

手把手教你搭建Weblogic调试环境

然后一直下一步知道配置概要选项,点击创建,开始创建域。待配置完成点击下一步

手把手教你搭建Weblogic调试环境

如果勾选启动管理服务器,将启动weblogic服务器,这里我们不勾选直接点完成,因为我们需要更改启动配置以开启调试模式

我们找到%WLS_HOME%user_projectsdomainsbase_domainbin下的setDomainEnv.cmd文件

在其开头增加两行,分别表示开启调试模式与设置调试端口为5005。这两行也不要太靠前,可以搜索debugFlag第一次出现的位置,在其前面增加即可。

set debugFlag=true
set DEBUG_PORT=5005

修改完保存后,我们到%WLS_HOME%user_projectsdomainsbase_domain目录下执行命令

startWeblogic.cmd

手把手教你搭建Weblogic调试环境

等待服务启动。

Weblogic服务启动后,我们需要对IDEA进行配置以进行调试

首先我们需要找导Weblogic使用的jar包,在IDEA里新建一个项目,将这些jar包添加到项目ClassPath中去。如果你在网上找,他们你抄我我抄你,会告诉你使用一个什么jarbuilderjar包或者复制weblogic.jarClassPath去就行,我这里告诉你是不行的,新版本的Weblogic移除了这些命令,Weblogic.jar包也被重构了,里面什么也没有,就只有一个空目录,指向了一些被依赖的其他jar包。

这里我们直接使用命令将我们Weblogic的所有jar包都找出来

我们进入到%WLS_HOME%wlserver目录,在该目录中创建一个新的目录lib,或者其他什么名字,然后想办法将这个wlserver目录复制到你的Linux虚拟机里面去,你可以通过共享文件夹或者VMTools直接拖拽,或者使用WindowsWLS来执行以下命令将所有的jar包都复制到lib目录中去

find ./wlserver -name '*.jar' -exec cp {} ./wlserver/lib ;

然后讲wlserveridea中作为一个项目打开

手把手教你搭建Weblogic调试环境

然后我们选择File->Project Structure打开项目结构设置,在这将我们的lib目录添加为模块的依赖保存

手把手教你搭建Weblogic调试环境

然后等待IDEA索引反编译jar包成功后我们就可以打开这些jar包了。当jar包出现这样的箭头则表示添加依赖成功且发编译成功,我们可以打开这些jar包直接查看反编译后的可读代码,并下断点调试。

手把手教你搭建Weblogic调试环境

如果需要进行调试我们还需要新增一个远程JVM调试的配置,我们在idea右上角选择Edit Configurations

手把手教你搭建Weblogic调试环境

我们新增一个JVM Remote Debug

手把手教你搭建Weblogic调试环境

设置一下名字以及远程目标,目标的IPWeblogic服务器地址,端口即前面修改的setDomainEnv.cmd文件中设置的端口

手把手教你搭建Weblogic调试环境

配置增加后我们点击调试即可开启调试模式

手把手教你搭建Weblogic调试环境

点击后会弹出调试窗口,如果没有报错类似如下的界面则表示连接成功

手把手教你搭建Weblogic调试环境

此时我们便可以打断点调试了

手把手教你搭建Weblogic调试环境

另外,如果我们需要调试漏洞的话,这样做可能会有问题,理想的方式是在当前项目下创建一个子项目,然后在子项目中引入漏洞需要的一些依赖,这样就可以将漏洞依赖于Weblogic依赖分开。因为Weblogic整个系统太过庞大,存在一些相同的类不同的jar包中的情况,这样如果我们进行可能导致程序找到错误的jar包中的类,从而使得运行失败,所以我们选择新建子项目进行漏洞PoC或者Exp的运行。

例如,如果我们测试JNDI注入,如果一股脑使用所有依赖则在new InitialContext的时候会卡住。

在最新版的Weblogic中,如果你使用的是T3协议,你最好单独在子模块中引入wlthint3client.jar这个jar包,如果使用iiop模块也需要单独引入com.oracle.weblogic.iiop.jar等jar包。

如果你不知道你使用的类来自哪个jar包,你可以使用jd-gui这个工具将Weblogic所有的jar包导入然后搜索即可,谁让IDEA不能搜索反编译jar包中的内容呢。

原文始发于微信公众号(一个安全研究员):手把手教你搭建Weblogic调试环境

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月13日01:52:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   手把手教你搭建Weblogic调试环境https://cn-sec.com/archives/2074465.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息