IDEA动态调试WebLogic
环境:Windows 10 + Windows7(192.168.52.181) + Idea + WebLogic12.2.1.4 + Java8102
0x01 安装weblogic
安装成功后,在domains下的bin目录下有个startWebLogic.cmd文件
0x02 配置被调试端
0x0201 添加调试参数
2.1.1 方式一
在startWebLogic.cmd文件中加参数:
set JAVA_OPTIONS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n
2.1.1 方式二
修改 user_projects\domains\<域名>
的 bin 目录下面的 setDomainEnv.cmd 文件,在 if "%debugFlag%"=="true"
前加入:
debugFlag=true
DEBUG_PORT=9999
0x0202 启动weblogic
双击startWebLogic.cmd启动weblogic,之后使用netstat -ano|findstr 9999
可以看到9999端口的监听
0x03 配置调试端
0x0301 打开wlserver作为项目
复制被调试环境中的weblogic目录到调试环境中
启动idea,选择打开一个项目,选择wlserver这个目录
0x0302 添加jar包
单纯的将server/lib目录设置为library,可能会遗漏一些jar包,比如weblogic12.2.1.4环境CVE-2020-14852要用到的oracle.eclipselink.coherence.integrated.internal.cache.LockVersionExtractor
类在toplink-grid.jar包中,但该jar包的路径为<weblogic安装目录>\oracle_common\modules\oracle.toplink\toplink-grid.jar
。
3.2.1 寻找所有的jar包
我这里用的是everything软件
新建一个文件夹,将所有的jar包拷贝新建的文件夹中
3.2.2 添加library
选择刚刚的weblogic_jars
添加完之后的显示:
0x0303 添加调试配置
选择调试配置
添加一个remote的配置
这里需要输入Host和Port的值,确保被调试环境的端口能够被访问
0x0304 启动调试
点击Debug,如果成功则会出现Connected to the target VM, address: '192.168.52.181:9999', transport: 'socket'
类似的显示,没成功的话可以重新运行startWebLogic.cmd文件再去debug。
0x04 使用方法
0x0401 如何搜索类或函数
双击shift键后,勾选Include non-project items
,之后就可以在搜索栏里搜索了
参考资料:weblogic漏洞分析系列之调试环境搭建