[RoarCTF 2019]Easy Java
打开环境之后是一个登录界面,账号密码可以爆破,admin/admin888,进入之后也没有什么东西
我们查看登录界面的源代码
猜测有任意文件下载漏洞
get请求死活下载不了东西,换成POST就可以了,不知道为什么,此处采用hackbar进行POST传输参数
下载了help.docx文档之后还是没有任何发现。
因为下载页面是Java页面,这里考察了java web的基础知识,这里贴上一个师傅的博客
ctf/web源码泄露及利用办法【总结中】
https://blog.csdn.net/wy_97/article/details/78165051
简单来说
WEB-INF主要包含一下文件或目录: /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中 /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件 /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。 /WEB-INF/database.properties:数据库配置文件 漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码
所以我们首先读取初始化配置信息/WEB-INF/web.xml
下载了之后内容如图,并且里面显示了一个/Flag
读取class文件,没有java web的开发经验,所以这里只能跟着别的师傅的payload写了,应该是从web.xml里面推测出来classes下面的文件,从而进行读取对应的.class文件
filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
POST下载文件
将其中的base64编码对应解码即可