[RoarCTF 2019]Easy Java1

 

看到账号密码第一开始是猜测sql或者去爆破,但是我们点开下面的help可以看到

java.io.FileNotFoundException 是 Java中常见的异常之一,表示在试图打开或访问指定文件时未找到该文件。出现这个异常通常是因为以下几种原因:
文件路径错误:指定的文件路径不正确,或者文件名拼写错误。
文件不存在:文件在指定的路径下不存在。
文件权限:没有权限读取指定的文件。
工作目录:程序的工作目录与文件所在的目录不一致。

这里GET方法来下载是不行的,既然给出了help.docx这个提示,我猜测题目作者应该是想让换一种方法来下载。那么我们在POST中进行传入filename=help.docx就能把这个文件下载下来了

下载之后查看,这个docx好像没多大用处

根据其他佬的blog,接下来应该要访问/WEB-INF/web.xml

这里介绍一下这个知识点:

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

 

接下来,我们跟前面下载help.docx一样来访问web.xml,我们可以下载看到源代码

可以看到com.wm.ctf.FlagController被<servlet-class>包裹,在前面介绍的WEB-INF知识点中介绍了/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在.jar文件中

所以我们可以得到文件目录也就是访问filename=WEB-INF/classes/com/wm/ctf/FlagController.class然后我们就可以得到源码,记事本打开,发现一串base64

Base64 在线编码解码 | Base64 加密解密 - Base64.us解码得到

对于上面的javaweb目录结构如下

/web-app
│
├── WEB-INF
│   ├── web.xml
│   └── classes
│       └── com
│           └── wm
│               └── ctf
│                   ├── IndexController.class
│                   ├── LoginController.class
│                   ├── DownloadController.class
│                   └── FlagController.class
├── Index.jsp

参考:[RoarCTF 2019]Easy Java - nnonkey k1n9的博客

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值