[RoarCTF 2019]Easy Java

首页是登录,然后下面有个help

[RoarCTF 2019]Easy Java_第1张图片

发现输入什么就返回什么

[RoarCTF 2019]Easy Java_第2张图片

这道题的考点是java源码泄露

WEB-INF/web.xml和/WEB-INF/classes/泄露
WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。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:数据库配置文件

在Download页面POST传参(我也不知道为什么要这样做)

[RoarCTF 2019]Easy Java_第3张图片

得到一个下载文件

其中一部分:

    
        FlagController
        com.wm.ctf.FlagController
    
    
        FlagController
        /Flag
    

知识点:

/WEB-INF/classes/:含了站点所有用到的 class 文件,包括 servlet class 和非servlet class

我们需要继续在Download页面用POST传入“filename=”+这一串路径(com.wm.ctf.FlagController),把路径中的“."换成”/",并且在前面加上/WEB-INF/classes/,在末尾加上文件后缀(.class)

所以POST传参

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

 直接传参页面没有反应

在bp中传参

 在Raw中发现

[RoarCTF 2019]Easy Java_第4张图片

base64解码得到flag

你可能感兴趣的:(BUUCTF,java,web安全)