nnonkey k1n9的博客

当你为错过太阳而哭泣时,你也要再错过群星了——泰戈尔​

[RoarCTF 2019]Easy Java

[RoarCTF 2019]Easy Java java的WEB-INF

进入题目先是发现要登录,然后有个help可以点,然后发现url变为

http://1ef7c2e2-7483-46bb-b3c2-36e464803872.node5.buuoj.cn:81/Download?filename=help.docx

页面提示java.io.FileNotFoundException:{help.docx}就是下载失败的意思,但是最离谱的是你不管改成什么文件都不管用,因为要在post传参才有用,完全没有道理

然后就是一个新知识
WEB-INF知识点#
WEB-INF是java的WEB应用的安全目录,此外如果想在页面访问WEB-INF应用里面的文件,必须要通过web.xml进行相应的映射才能访问。
其中敏感目录举例:

/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:数据库配置文件

简单来说,java web是基于Tomcat服务器搭建的,通过servlet来开发。
狭义来说,servlet是指Java语言实现的一个接口。

访问方式

这个就是指向我们要注册的servlet 的类地址, 要带包路径

是用来配置我们注册的组件的访问路径,里面包括两个节点
一个是,这个要与前面写的servlet一致
另一个是,配置这个组件的访问路径

这个是我们要注册servlet的名字,一般跟Servlet类名有关

举个例子

<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>

我们访问 得到

Index


IndexController
com.wm.ctf.IndexController


IndexController
/Index


LoginController
com.wm.ctf.LoginController


LoginController
/Login


DownloadController
com.wm.ctf.DownloadController


DownloadController
/Download


FlagController
com.wm.ctf.FlagController


FlagController
/Flag


叫gpt列出目录的结构

- WEB-INF
  - classes
    - com
      - wm
        - ctf
          - IndexController.class
          - LoginController.class
          - DownloadController.class
          - FlagController.class
  - web.xml
- Index.jsp
- Login.jsp
- Download.jsp
- Flag.jsp

访问Flag.jsp没有东西,我们访问filename=WEB-INF/classes/com/wm/ctf/FlagController.class下载成功然后发现一个很奇怪的base64编码的东西,解码就得到了flag

本原创文章未经允许不得转载 | 当前页面:nnonkey k1n9的博客 » [RoarCTF 2019]Easy Java

评论 1

  1. 大师傅、大师傅、能不能带带我打CTF?

    Aiwin 2024-03-05    回复