目录
[RoarCTF 2019]Easy Java
WEB-INF/web.xml泄露:
漏洞成因:
漏洞检测以及利用方法:
[RoarCTF 2019]Easy Java打开这个题看到了一个登录框,弱口令碰个运气没进去我就点了help,看到了个help.docx,访问一下下载下来他说
Are you sure the flag is here? ? ?
我一下觉得这个题是misc。。。。然后看了看WP
之前看到的java语句
java.io.FileNotFoundException:{help.docx}
java项目内部的异常能回显至客户端,侧面说明对于客户端,java项目里的各个文件是暴露的
GET方式访问
?filename=/WEB-INF/
继续回显给我们java.io.FileNotFoundException:{/WEB-INF/}
hackbar用POST访问/WEB-INF/web.xml可以下载web.xml,然后我们可以看到
那我们就去看看
filename=WEB-INF/classes/com/wm/ctf/FlagController.class
这是base64加密后的flag,解密一下就行了
WEB-INF/web.xml泄露:java项目中有关web的相关信息: WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问WEB-INF主要包含一下文件或目录:
目录作用/WEB-INF/web.xmlWeb应用程序配置文件,描述了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应用我们会使用多个web服务器搭配使用,以此来解决只用一台web服务器性能不够的缺陷,在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些安全问题导致任意文件读取
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。
一般情况,jsp引擎默认都是禁止访问WEB-INF目录的
Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!