weblogic环境部署与远程调试


主要内容

​ 因为最近要学习weblogic以及对其历史漏洞展开研究,包括漏洞基本原理分析,跟进代码审计,挖掘思路总结,修复方式整理,因此需要临时搭建一个weblogic环境以方便复现和调试代码(关键),经过前期的调研后,已经总结了windows上面和linux安装weblogic的方法,但由于平时使用linux系统多一点,因此选择在linux上面部署weblogic,于是乎调研了一番,最终以方便,快速,自动化为特征选择了奇安信师傅们开发的一款工具(参考链接),下面将具体搭建与调试步骤记录如下,以做总结。

环境部署

​ 此方法要求机器上已经安装docker,如果未安装可以自行查找相关文档,此处不再介绍。安装完docker以后,对于weblogic的具体搭建过程则包括weblogic安装包下载,以及jdk包下载等过程,下面详细说明。

  1. 从github(国外)或者gitee(国内,速度快)将安装脚本克隆到本地虚拟机:

    image-20210615155011527

  2. cd切换到克隆后的目录,创建jdks与weblogics目录

    1
    mkdir jdks && mkdir weblogics

    image-20210615155509181

  3. 执行安装脚本:(这里以weblogic10.3.6.0+jdk7u21为例说明)

    1
    ./run_weblogic1036jdk7u21.sh

    image-20210615155719396

  4. 安装过程截图

    image-20210615160109082

  5. 安装完成

    image-20210615161048374

  6. 开启调试模式

    image-20210615161211537

  7. 通过url访问可看到已经部署成功。并已默认开启了远程调试模式。

    image-20210615161343055

  8. 导出weblogic的依赖Jar包进行远程调试

    8.1 查看weblogic容器进程

    image-20210615161840093

    8.2 使用下面的命令导出jar包,并导出tar.gz文件方便在装有IDEA的机器中进行远程调试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #进入容器
    sudo docker exec -it weblogic1036jdk7u21 /bin/bash
    cd /u01/app/oracle/
    cp -r middleware/ /root/WeblogicEnvironment-master/
    exit
    #宿主机执行
    sudo docker cp 7a84dc24433b:/root/WeblogicEnvironment-master .
    sudo chown -R user:user WeblogicEnvironment-master
    tar czvf newfile.tar.gz WeblogicEnvironment-master
  9. (该步骤开启的可忽略)如果默认没开启,则按照以下步骤开启。

    9.1 修改docker-compose.yml文件,开启8453端口

    image-20210615165137029

    9.2 编辑配置脚本

    1
    2
    cd u01/app/oracle/Domains/ExampleSilentWTDomain/bin/
    vi setDomainEnv.sh

    9.3 添加两行代码

    1
    2
    debugFlag="true"
    export debugFlag

    image-20210615165049175

远程调试

  1. 打开idea,创建一个Java web工程,在idea中File->Project Structure里找到Libraries,添加modules。

    image-20210615172959737

  2. 然后配置远程调试,填写远程IP以及端口。

    image-20210615173554603

  3. 以CVE-2015-4852为例,因为我们知道是 commons-collections的InvokerTransformer出现的问题,所以断点直接下在transform(),开启idea的debug,然后用exp打过去,发现断点已经成功。

    image-20210616094902165

    image-20210616094753181

  4. 至此,远程调试完成。可以开始后续的代码审计了。

参考文章

-------- 本文结束 感谢阅读 --------

本文标题:weblogic环境部署与远程调试

文章作者:FunctFan

发布时间:2021年06月15日 - 22:09:31

最后更新:2021年06月15日 - 23:04:28

原始链接:https://functfan.github.io/posts/2831946175/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。