少女祈祷中...

[RoarCTF 2019]Easy Java

image-20250315151836948

一个登入页面?试试看sql?发现不行

完全不会!!!!

查了才知道是类似文件读取漏洞

1.打开help,提醒我们

1
java.io.FileNotFoundException:{help.docx}

那我们输入

1
http://9d67dba8-dd72-4813-ae85-2fe82f0224d5.node5.buuoj.cn:81/help.docx

java文件包含

得到一个假文件。。。。只能找找其他的线索了

我们可以发现在打开help时候会有

1
/Download?filename=help.docx

url

我们可能可以读取配置文件:(相当于WWW目录下的文件)

1
2
3
4
5
6
 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:数据库配置文件

输入

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

居然不行?

试试看POST得到文件:

web-xml文件

1

url构造

打开文件得到

image-20250315153321873

科普:

1
2
3
4
servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。(来源百度百科)
其实说明了这个就是JAVA源代码进行编译后所产生的后缀带有.class的东西。于是我们可以下载这个.class文件再利用反编译手段来获得flag。

就是在classes目录下的class文件

于是我们直接访问:

1
classes/com/wm/ctf/FlagController.class

image-20250315153817804

(有bug,只能用BP来进行修改注入post)

得到

image-20250315154327738

1
2
<ZmxhZ3s0MDlkNmViYy1kZTc0LTRkMGUtOGFjZC1jYzljNzQwMTI4Yzh9Cg==   base64编码
flag{409d6ebc-de74-4d0e-8acd-cc9c740128c8}