环境信息
OSType:
CentOS Linux 7 (Core) x86_64 3.10.0-957.21.3.el7.x86_64
DockerVersion:
19.03.8
Mirrors:
http://ovfftd6p.mirror.aliyuncs.com/
http://registry.docker-cn.com/
http://docker.mirrors.ustc.edu.cn/
http://hub-mirror.c.163.com/
WeblogicVersion:
12.2.1.3 - developer
部署Weblogic
法1:使用官方镜像
镜像地址:dockerhub
构建之后要运行weblogic
,需要使用官方提供的示例,参考上篇文章中间部分:利用Docker手动构建WebLogic镜像。
法2:利用Dockfile手动构建
Oracle
的Dockerfile
仓库地址:Github。
使用方法参考上篇文章即可。
获取Weblogic相关源文件
在远程调试之前,需要先拿到weblogic
源码或源文件(JAR包)。从镜像中就可以取出来,方法如下:
确定weblogic容器运行
找到服务器主目录
使用命令docker exec -it weblogic /bin/bash
进入到容器当中,一般情况下Oracle
主目录存储在环境变量ORACLE_HOME
当中,在这个目录下找到最大的那个文件夹一般就是我们要的东西。
我这里是在/u01/oracle/wlserver
,退出容器,使用命令docker cp weblogic:/u01/oracle/wlserver ./
将其从容器中复制出来。
除了需要weblogic
的东西之外,后面为了防止出错,建议直接使用容器里的jdk
,jdk
主目录在环境变量JAVA_HOME
中:
使用命令docker cp weblogic:/usr/java/jdk-8 ./wlserver/
将其拷贝到wlserver
目录中,待会直接打包。
然后为了之后IDEA
调试不缺依赖,我们在wlserver
下创建一个test
目录,使用命令find ./wlserver -name *.jar -exec cp {} ./wlserver/test/ \;
将所有的jar
文件复制到一起。
然后使用zip
命令将目录打包:zip -r wlserver.zip ./wlserver
,然后sz wlserver.zip
将其从虚拟机中搞出来。
IDEA调试配置
最后,根据图的指示添加运行配置(Remote),IP和端口填正确,如下图:
下断点方法
成功之后,test
目录下的所有jar
包都可以展开,找到自己要调试的类,比如com.weblogic.iiop.jar!\weblogic\iiop\ConnectionManager.class
。
在左边行号旁边下断点即可,程序运行到这里会自动中断。
参考链接
- IDEA+docker,进行远程漏洞调试(weblogic)
- Another blog