[RoarCTF 2019]Easy Java
在一开始做这道题的时候 还以为需要登录成功 就可以获得flag 所以一开始尝试弱密码来进行爆破 来尝试进行登录
发现密码是 admin888
登录:
知道本题的考点 绝不是这个
往下看,发现help
点击查看
发现了 download
也就是说本来我们访问页面的时候,应该会进行下载一个文件 可是 我们却没有得到这个文件 试试 php伪协议 发现同样失败
尝试一下 post传参
在这里插入图片描述
发现成功
访问文件
上网查询过 wp 后发现 是源码泄露题——WEB-INF/web.xml
WEB-INF/web.xml
WEB-INF是java中的 web应用的安全目录,我们可以通过web.xml文件对要访问的文件在页面中查看
在了解了web.xml这个文件内容之后,我们就可发现它里面所包含的信息就是敏感文件的分布情况。所以说只要我们有权限访问这个文件,我们就可以通过文件包含等手段进行敏感信息的获取。
尝试post访问
读取获取的文件:发现我们寻找的flag存在目录中
<servlet-name>
这个是我们要注册servlet的名字,一般跟Servlet类名有关
<servlet-class>
这个就是指向我们要注册的servlet 的类地址, 要带包路径以上两个包在一个servlet 节点之下.
<servlet-mapping>
是用来配置我们注册的组件的访问路径,里面包括两个节点
<servlet-name>
这个要与 前面写的servlet那么一直
<url-pattern>
配置这个组件的访问路径
FlagController的路径是http://host[:port]/flag
我们尝试直接访问 FlagController
访问失败,但却爆出来一个 .class
文件
.class文件 存放于WEB-INF/classesclasses文件夹,这些 .class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便
我们尝试下载后,进行文件查看
以POST方式访问 download filename=WEB-INF/classes/com/wm/ctf/FlagController.class
我们尝试下载查看文件
发现一段base64编码
解码查看,发现 flag