【Java基础】 - IDEA编译、调试ysoserial

admin 2022年6月2日08:00:08评论171 views字数 1256阅读4分11秒阅读模式

mvn命令打包IDEA图形化打包maven项目IDEA调试yso项目参考链接

mvn命令打包

项目地址:https://github.com/frohoff/ysoserial

git clone https://github.com/frohoff/ysoserial.git

适用maven在命令行下打包:

mvn clean package -DskipTests

开始下载相关的maven库依赖,并且在target目录下构建成jar包。

出现如下提示即为打包成功:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 54.956 s
[INFO] Finished at: 2021-09-18T19:09:37+08:00
[INFO] ------------------------------------------------------------------------

IDEA图形化打包maven项目

用IDEA打开ysoserial项目目录。

先点击skip test这个按钮,打包的时候就会跳过测试模块,再点击运行即可打包成功。

【Java基础】 - IDEA编译、调试ysoserial

实际就等于以下这条命令:

mvn clean package -DskipTests

IDEA调试yso项目

学习java反序列化必然要弄清楚各个反序列化链的生成原理,而调试yso项目可以很方便分析具体的反序列化链的生成过程。

IDEA导入yso项目,下载好相关maven依赖后,整个项目就能运行了。

首先定位整个项目的入口,maven-assembly-plugin是一个用来打包项目的插件,可以把依赖、类文件等都打包在一起。这里的mainClass的值是 ysoserial.GeneratePayload ,这个就是主类,也就是入口函数:

可以在pom.xml文件中看到:

【Java基础】 - IDEA编译、调试ysoserial

我们需要配置相关的启动选项(Run/Debug Configurations),可以直接点击GeneratePayload.main()函数旁边的绿色运行按钮:

【Java基础】 - IDEA编译、调试ysoserial

就可以生成一个叫GeneratePayload的运行配置,运行生成具体的反序列化payload还需要其他参数,这里我以cc2为例,命令为whoami

【Java基础】 - IDEA编译、调试ysoserial

点击运行,就会输出相关payload:

【Java基础】 - IDEA编译、调试ysoserial

CommonsCollections2.getObject()函数里面下断点,点击调试按钮,就能进行调试了。

调试任何Java的项目其实都大同小异,找主类,然后设置运行的参数,点击debug的按钮,调试就开始了。

参考链接

ysoserial笔记

java 使用 idea 调试 ysoserial


原文始发于微信公众号(信安文摘):【Java基础】 - IDEA编译、调试ysoserial

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日08:00:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Java基础】 - IDEA编译、调试ysoserialhttp://cn-sec.com/archives/866696.html

发表评论

匿名网友 填写信息