[RoarCTF 2019]Easy Java

AffettoIris 2023-11-24 2,285 11/24

 

基于WEB-INF泄露漏洞的题目,靶场

前置漏洞知识

WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

WEB-INF 主要包含以下文件或目录:(请关注前两个文件/夹)

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.

WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
WEB-INF/database.properties : 数据库配置文件

WP

  1. 题目给了我这么个靶场url:http://af948a2c-d88f-4dd1-a430-965d6a8c89c9.node4.buuoj.cn:81/,访问如下:

[RoarCTF 2019]Easy Java

  1. 有个同学尝试过SQL注入,发现无懈可击,直到点开了help下载按钮(这是在模拟真实渗透测试时,你很难上来就知道它有啥漏洞,就奔着这个点测试,除非你搜到它安装的应用的版本的漏洞):

[RoarCTF 2019]Easy Java

并没有下载什么帮助文档,还报错说文件找不到异常。

  1. 那用HackBar改用POST尝试下?:发现下载了帮助文档,所以可能存在下载漏洞:

[RoarCTF 2019]Easy Java

  1. 至此我们不装了,开门见山了,这题是考基于WEB-INF泄露漏洞的,所以我们再尝试能不能下载WEB-INF/web.xml文件:

[RoarCTF 2019]Easy Java

  1. 执行后没有任何下载的反应,我们担心是网页设置了下载次数,一次只能下载一个文件,下载过就不开放下载权限的情况,所以重新点击help下载按钮重开了个网页,然后再试一下:发现下载了WEB-INF/web.xml文件:

[RoarCTF 2019]Easy Java

  1. 针对此漏洞,我们希望找到与class相关的信息,所以打开刚下载的文件,查找"class"字符串:

[RoarCTF 2019]Easy Java

看到最后一个类叫"FlagController",在java中文件名和主类名一致,所以类所在.class文件的包路径是com/wm/ctf/FlagController.class,而类又是存放在WEB-INF/classes/文件夹下的,所以得出FlagController类的路径是WEB-INF/classes/com/wm/ctf/FlagController.class,尝试下载:有戏:

[RoarCTF 2019]Easy Java

  1. 我以前学过Java,.java文件是程序员写的含java代码文件,对.java文件编译可得.class文件,所以我们在此需要对.class文件反编译得到.java文件,在线java反编译网站http://javare.cn/。或者直接用IDEA打开.class文件,自动显示反编译出的.java文件内容:

[RoarCTF 2019]Easy Java

  1. 发现flag="ZmxhZ3s3OWY2MmMzOS0zOGQ2LTRjNTAtODBjZS1kNzhjMTkyZWMzYjN9Cg==",不过我直接交答案没通过,估计是模拟实际渗透时遇到base64编码需要解码还原原始内容吧。解码得到flag{79f62c39-38d6-4c50-80ce-d78c192ec3b3}

赛后

[RoarCTF 2019]Easy Java

  • 为什么只有WEB-INF泄露漏洞还不够EXP?:你有WEB-INF泄露漏洞说明你能获取到WEB-INF文件夹,但是其下文件如WEB-INF/class/com/wm/ctf/IndexController.classWEB-INF/web.xml一般会被限制访问权限,即404,不给你下载,所以还需要下载漏洞。

  • 为什么说WEB-INF泄露漏洞很鸡肋?:你都有下载漏洞了,那岂不是随便下载么,干嘛还迂回曲折的下载.class文件。

- THE END -

AffettoIris

11月24日18:29

最后修改:2023年11月24日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论