WebLogic历史漏洞代码审计(一):远程调试环境搭建

WebLogic历史漏洞代码审计(一):远程调试环境搭建



前言

vulhub+远程调试是java代码审计较为方便的一种方式,本文将详细介绍win10进行调试所需的环境搭建(本文是对《java代码审计(入门篇)》书籍中远程调试的复现,将一些大佬觉得太简单的细节重新补充一下)


一、Win10环境下,Docker的安装

进入如下网址,选择x86的Docker Desktop下载。

https://docs.docker.com/desktop/install/windows-install/

在这里插入图片描述
下载后,点击运行Docker Desktop Installer.exe即可启动
启动后,右键单击右下角小鲸鱼图表,点击Change settings修改配置

在这里插入图片描述
首先最重要的是修改Docker的镜像源配置,将下图中registry-mirrors修改为如下网址,后点击Apply & Restart保存修改并重启Docker Desktop

https://hub-mirror.c.163.com/

但很多时候镜像源会过期或网络不稳定,个人推荐使用Docker拉取环境前先将自身设备网络与外网相通,保证能顺畅访问外网,懂得都懂
在这里插入图片描述
打开一个新的命令行终端,输入docker run ubuntu echo “helloworld” 命令行,如成功输出helloworld,表示Docker安装并运行成功,如不能首先看看提示是否为网络连接超时,搜索新的镜像源,或使用其他手段保证与外网正常连接

二、VulHub的配置与jar包的复制

下载vulhub

https://github.com/vulhub/vulhub

进入vulhub文件中/weblogic/CVE-2017-10271文件夹,修改其中的docker-compose.yml文件,加入8453端口方便调试
在这里插入图片描述
进入/weblogic/CVE-2017-10271目录,运行docker-compose up -d命令编译镜像并启动容器,如下图容器启动成功(我的已经启动过一次)
在这里插入图片描述
输入docker ps -a查看所有docker容器的信息,可知该容器ID为b156419e780e(ID简称为b1)
在这里插入图片描述
使用docker exec -it b1 /bin/bash命令进入容器
使用vi /root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh加入如下两行代码

ebugFlag="true" 
export debugFlag 

在这里插入图片描述
使用docker restart命令重启容器,再进入容器,将/root/Oracle/Middleware文件夹下的modules文件夹和wlserver_10.3文件夹使用zip命令压缩成zip压缩包,容器为一个简单的Linux系统,需要执行apt-get install zip来安装zip压缩功能,然后执行zip modules.zip moduleszip wlserver_10.3.zip wlserver_10.3压缩文件夹(Windos命令行对路径长度有限制,如果直接使用docker的cp命令就有会报错,这里要养成好习惯)
在这里插入图片描述
exit命令退出容器内部,用docker cp b1:/root/Oracle/Middleware/modules.zip (你所创建的文件夹的绝对或相对路径)docker cp b1:/root/Oracle/Middleware/wlserver_10.3.zip.zip (你所创建文件夹的绝对或相对路径) 将两个压缩包复制到物理机中的文件夹
在这里插入图片描述

三、IDEA远程调试的配置

用IDEA打开之前的文件夹,点击右上角的当前文件并编辑配置,点击“+”并选择“远程JVM调试”(英文版为Remote)
在这里插入图片描述
在这里插入图片描述
将端口号修改为8453(注意:这个端口号要与第一步在 docker-compose.yml 文件中添加的端口号保持一致),填完后点击应用再点击确定!
在这里插入图片描述
选中wlserver_10.3/server/lib 文件和 modules 文件并右键单击,选择“添加为库”(或Add as Library)
添加依赖文件,这样就可以将这些文件加入到项目中了(如果遇到其他jar包无法调试或有些函数明明在文件夹可以搜索但在项目中没有,都可以尝试这个方法)
在这里插入图片描述
在 wlserver_10.3/server/lib/weblogic.jar!/weblogic/wsee/jaxws/ WLSServletAdapter.class 的 hadle 方法处设置断点,接着单击右上角的 Debug 按钮(绿色小虫子图标)运行 Debug 模式。然后使用浏览器访问 http://127.0.0.1:7001/wls-wsat/CoordinatorPortType,同时查看 IDEA 是否如下图所示,程序在断点处停止
在这里插入图片描述
如成功停止代表调试成功
在这里插入图片描述

总结

本文参考书籍《java代码审计(入门篇)》的weblogic远程调试章节而写,书籍中的步骤相比网上很多调试教程要全面的多,本篇文章如有写的不全可以看看该书对照使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值