BUUCTF闯关日记--[RoarCTF 2019]Easy Java1-爱代码爱编程
这题说实话有好多新知识,关于JAVA的之前确实了解不够多,这里是考察web.xml泄露的
进入页面是这个样子
多收集一点信息,把F12按开刷新,看看请求头还有一些其他信息,看看源码,这一关请求头什么的没有什么信息,但是源码里有一个后缀docx的超链接,进去看看(其实就是下面那个help的超链接是同一个)
点开超链接后的页面
同样不要放过任何一个页面,每个页面的页面源代码还有一些可以收集的信息都看看,不要嫌弃浪费时间, 虽然这关这些操作确实是浪费时间,但是有的ctf题目就是把一些重要信息藏在某一个页面源代码,而且是页面越多的情况,往往越容易被忽略
回到正题,很容易发现有一个help.docx的可疑目标,毫无疑问,下意识直接访问看看能不能得到一些代码,于是等访问完毕便得到回显是
肯定没有这么简单嘛,毕竟题目是easy java,肯定和java有关系滴,于是这里就需要引入一个知识,关于web.xml文件泄露的
WEB-INF/web.xml泄露
具体原因就是往往一个网站会使用许多的服务器,但是如果出现了对静态资源的目录或文件的映射配置不当的时候,就会导致web.xml等文件能够被读取
那么怎么利用呢?
首先我们已经知道了文件名是help.docx读取文件就是前面配上/WEB-INF构成WEB-INF/web.xml的形式
传入url试一下
没有什么信息,那就再尝试一下POST传参(我使用的是burp抓包修改)
改完POST传参后发现下载了一个文件
打开看看咯
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<welcome-file-list>
<welcome-file>Index</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>IndexController</servlet-name>
<servlet-class>com.wm.ctf.IndexController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexController</servlet-name>
<url-pattern>/Index</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LoginController</servlet-name>
<servlet-class>com.wm.ctf.LoginController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DownloadController</servlet-name>
<servlet-class>com.wm.ctf.DownloadController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DownloadController</servlet-name>
<url-pattern>/Download</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FlagController</servlet-name>
<url-pattern>/Flag</url-pattern>
</servlet-mapping>
</web-app>
这个就是文件里面的信息,聪明的你一眼就看到了flag
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
可以看到这是提醒的信息com.wm.ctf.FlagController这个就是路径,而且在class里面
所以这时候就要用到 /WEB-INF/classes/
/WEB-INF/classes/:含了站点所有用的 class 文件,
包括 servlet class 和非servlet class,
他们不能包含在 .jar文件中
再抓包改一下
打开之后
哇!乱码,一度以为自己错了,看到里面有个信息
ZmxhZ3szMDk4MDNmMC1hYmNiLTRhZmYtODhiMi02Zjc2MjUyODJiZDl9Cg==
看到两个等号90%就是base64编码了,解开看看
成功
---------------------------------------------------翻车分割线---------------------------------------------------------------
做题时,我不知道java这个文件泄露漏洞,于是我就打起了admin登陆的想法,输入admin,burp爆破,直接进去了
账号:admin
密码:admin888
进去后是这样
我还一度以为在这里,然后help.docx我还以为要在Login目录下完成,卡了老长时间了