首页 > 编程语言 > 详细

刷题[RoarCTF 2019]Easy Java

时间:2020-06-15 14:24:47      阅读:78      评论:0      收藏:0      [点我收藏+]

前置知识

WEB-INF/web.xml泄露

技术分享图片

java web工程目录结构

技术分享图片

Servlet访问URL映射配置

由于客户端是通过URL地址访问Web服务器中的资源,所以Servlet程序若想被外界访问,必须把Servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。例如:

<servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>cn.itcast.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/ServletDemo1</url-pattern>
</servlet-mapping>

解题思路

打开网页发现是登陆界面,有一个链接help。点击发现无内容,但是从url看出是包含,可能存在文件包含漏洞

技术分享图片

为什么这里还是无法包含出help文件,尝试使用post提交,发现下载下了文件,但是打开没什么东西

源码泄露

通过post访问web.xml

技术分享图片

发现真的有内容,这里看到FlagController,构造其的访问路径

文件包含

由上面前置知识可知,通过url访问Servlet的方式是:
找到对应文件名,然后通过这个文件名找到对应的servlet,再通过这个servlet的文件名,获取到其具体的servlet文件。因为这个是类中的文件,所以后缀要加.class

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

技术分享图片
观察有一段base64加密后的字符串,解密获得flag

总结思路

  • 了解常见的java web工程目录结构
  • 了解Servlet访问URL映射配置

知识点

  • Servlet的访问流程
  • java web工程目录结构

参考博文

刷题[RoarCTF 2019]Easy Java

原文:https://www.cnblogs.com/karsa/p/13130130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!