fat-jar调试踩坑

·
Java代码审计 no tag September 2, 2021

前言

因为祥云杯上有一道Java题目,且当时苦与不会jar包调试。所以花了很长时间。

jar包远程调试

关于远程调试的参数。

当我们配好运行配置的时候

image-20210902172118559

这里就已经显示了要加的JVM参数

此时到命令行里运行

java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -jar web.jar

然后再点击调试。如果显示:

image-20210902172247919

那么就可以调试。

但是此时,你是不能进入断点的。因为你本地没有web.jar的代码。

给项目文件加一个lib文件夹

image-20210902172450242

把所有jar包(这里指的是web.jar里面本来的jar包)都放进去

image-20210902172543084

这时候我们自己做一个"web.jar"

将web.jar解压,然后进入这个地方,打包这个classes

image-20210902172625595

把classes.zip改名为web.jar塞进上面的lib文件夹中。

这样做的目的是为了保证lib文件夹里的内容和远程一样,可以进入顺利进入断点。

image-20210902172910017

然后在这里把刚才的lib文件夹加入进来。

然后打个断点发个包就进入了我们自己压缩的jar包

image-20210902173052278

当然反序列化点也没什么问题

image-20210902173128415

调试信息也出现在我们的shell中

image-20210902173153543

这样就达到了调试fat-jar包的目的。

  • JDK7u21
  • Fastjson 1.2.22-1.2.24反序列化漏洞分析
取消回复

说点什么?

© 2023 Yang_99的小窝. Using Typecho & Moricolor.