首先,根据题目是easy java 初步判断是和Java相关的一个解题思路
启动靶机后,会得到一个地址http://db7ed2bc-f294-410e-b2c1-04f6166012e3.node4.buuoj.cn:81打开是这样的一个页面
看到这个页面,尝试猜测一下账号、密码,试了几次不太行,接下来看到一个help,点进去发现
并没有太大的用处,但这个时候发现地址有些可疑,同时里面有一个Download,判断flag可能在下载文件里面
db7ed2bc-f294-410e-b2c1-04f6166012e3.node4.buuoj.cn:81/Download?filename=help.docx
通过尝试,下载到了一个文件,但是没有什么用
这个时候判断可能是下载路径不对,同时联想到是和Java相关的,就想到可能是
WEB-INF/web.xml 泄露
WEB-INF
是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF
主要包含以下文件或目录:
WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等
WEB-INF/web.xml知识来源:常见的Web源码泄漏漏洞及其利用 - SecPulse.COM | 安全脉搏
修改路径,可以再次下载得到一个文件
里面可以找到一个flag的路径com.wm.ctf.FlagController
在书写上要改为com/wm/ctf/FlagController
根据以上代码可以得到flag在一个class文件里,又因为
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
所以完整路径为:filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
根据此操作,再次得到一个文件
不出所料,果然找到了flag,不过进行了base64加密,通过解码,成功拿下flag