也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
转移发布平台通知:将不再在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调试,就是下面这个点点
你以为你有很多路可以选择,其实你只有一条路可以走