「Java代码审计」CVE-2017-10271&CVE-2017-12615远程调试「IDEA」

分享了WebLogic和Tomcat的远程调试技巧,包括配置、环境设置、依赖管理与调试步骤,助你提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大

少走了弯路,也就错过了风景,无论如何,感谢经历


转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球

感谢大家一直以来对我CSDN博客的关注和支持,但是我决定不再在这里发布新文章了。为了给大家提供更好的服务和更深入的交流,我开设了一个知识星球,内部将会提供更深入、更实用的技术文章,这些文章将更有价值,并且能够帮助你更好地解决实际问题。期待你加入我的知识星球,让我们一起成长和进步

0x01 CVE-2017-10271 Weblogic

IDEA工具使用教程请参考之前的文章以及自行百度解决,此处不做过多介绍工具使用教程

*.jar包都放在一个test的文件夹里。

命令如下:

find ./ -name *.jar -exec cp {} ./test/ \;

上面这里统一做解答,只要我们添加文件到IDEA 要为文件选择对应添加进来的文件给该文件添加依赖

在这里插入图片描述

配置hosts

sudo vim /ect/hosts

Mac 配置brew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

docker调试首先将docker的8453开启,修改docker-compose.yml里面

version: '2'
services:
weblogic:
image: vulhub/weblogic
ports:
- "7001:7001"
- "8453:8453"

然后运行docker-compose up -d下载和运行镜像

使用docker exec -it weblogic(id) /bin/bash进入容器,修改
/root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh

压缩文件

apt-get install zip
zip -q -r html.zip /home/html

因为我们要远程进行调试,这里要modules和wlserver_10.3文件压缩一下放到物理机上来

docker cp weblogic(id):/root/Oracle/Middleware/modules.zip ./
docker cp weblogic(id):/root/Oracle/Middleware/wlserver_10.3.zip ./

将拷贝出来的文件放到idea里面,增加文件依赖,此时找到

http://192.168.22.12:7001/wls-wsat/CoordinatorPortType

使用命令docker exec -it 0a /bin/bash命令进入容器,使用vi修改文件/root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh,添加这两行代码

debugFlag="true"
export debugFlag

然后在/wlserver_10.3/server/lib/weblogic.jar!/weblogic/wsee/jaxws/WLSServletAdapter.class的129行下断点

回到浏览器按一下小圆圈

在这里插入图片描述

远程调试成功

在这里插入图片描述

0x02 CVE-2017-12615 tomcat 远程调试

先到docker-compose.yml里面添加远程调试的端口

- "5005:5005"

进入容器后

docker exec -it tomcat(id)  /bin/bash

在进入容器后的编辑一下这个文件bin/catalina.sh,插入以下的命令

JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

在这里插入图片描述

docker cp将文件夹/usr/local/tomcat/复制到物理机上

docker cp tomcat(id):/usr/local/tomcat ./

远程调试时jvm参数设置

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=6789 testR/ServerMain

参数说明

transport:debugee与debuger调试时之间的通讯数据传输方式。
server:是否监听debuger的调试请求。
suspend:是否等待启动,也即设置是否在debuger调试链接建立后才启动debugee JVM。
address:debugee的地址,用于debuger建立调试链接。

本地的为debugger,远程的为debugee。

将lib文件添加项目依赖,然后添加Debug调试,就是下面这个点点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


你以为你有很多路可以选择,其实你只有一条路可以走


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙留香Park

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值