题目地址:buuctf
这道题做起来又是没有一点思路,除了登录和help两个功能也没找到其他的,也没有隐藏的hint之类的,看报错显示的是Apache Tomcat/8.5.24,我搜下了有一个CVE-2018-1305的漏洞,但是好像也没什么用,还是看大佬们的wp吧???
利用点是help功能,点击help之后跳转的是/Download?filename=help.docx,但是报错java.io.FileNotFoundException:{help.docx}
关于这点,看大佬们的博客是因为请求方式的原因,果然改为post请求之后能够正常下载
下载后打开只有一行Are you sure the flag is here? ? ?很显然这也不是flag
接下来就是WEB-INF/web.xml泄露,WEB-INF是Java的WEB应用的安全目录。主要包含以下文件或目录
/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:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码
关于具体的源码泄露参考这个大佬的文章:https://blog.csdn.net/wy_97/article/details/78165051
然后传filename=/WEB-INF/web.xml,下载得到
有一个FlagController,路径/Flag,请求后报错
有路径/com/wm/ctf/FlagController
接下来就是更加看不懂的环节了,推测class文件路径,然后获得class文件,反编译得到flag
payload:
filename=WEB-INF/classes/com/wm/ctf/FlagController.class
有一串base64样式的字符串,解码得到flag
关于这个路径推测,大佬们的博客写的是结合Tomcat的项目存放路径的经验得出的,咱也没经验,咱也不知道?